The vulnerability lies in the way the Jenkins Xooa Plugin handles the Xooa Deployment Token. The root cause is twofold:
-
Plaintext Storage: The io.jenkins.plugins.xooa.GlobConfig class is responsible for managing the global configuration of the plugin. The setDeploymentToken method takes the deployment token as a plaintext string and stores it directly. The getDeploymentToken method retrieves this plaintext token. This results in the token being saved unencrypted in the io.jenkins.plugins.xooa.GlobConfig.xml file on the Jenkins controller's file system. An attacker with access to the file system can read this token.
-
Lack of Masking in UI: The global configuration form, defined in src/main/resources/io/jenkins/plugins/xooa/GlobConfig/config.jelly, uses an <f:textbox /> to display the deployment token. This UI component does not mask the input, meaning the token is visible as plaintext in the Jenkins web interface. An attacker with permission to view the global configuration, or even through browser inspection, could capture this token.
Because there is no patch available for this vulnerability, the evidence is taken directly from the source code of the vulnerable version. The combination of plaintext storage and lack of UI masking makes it easy for an attacker to compromise the Xooa Deployment Token.