This advisory announces vulnerabilities in the following Jenkins deliverables:
google-oauth-plugin
Google OAuth Credentials Plugin allowed the creation of credentials based on the content of files on the Jenkins controller through a feature retaining backwards compatibility with earlier plugin releases. This allowed users with the permission to configure jobs and credentials to read arbitrary files on the Jenkins controller by creating a credential referencing an arbitrary file on the Jenkins controller.
Google OAuth Credentials Plugin no longer allows a regular user to create credentials in the legacy format.
crx-content-package-deployer
CRX Content Package Deployer Plugin did not perform permission checks on a method implementing form validation. This allowed users with Overall/Read access to Jenkins to connect to an attacker-specified URL using attacker-specified credentials IDs obtained through another method, capturing credentials stored in Jenkins.
Additionally, the form validation method did not require POST requests, resulting in a CSRF vulnerability.
CRX Content Package Deployer Plugin now requires POST requests and Item/Configure permission.
crx-content-package-deployer
CRX Content Package Deployer Plugin provides a list of applicable credential IDs to allow users configuring the plugin to select the one to use.
This functionality did not correctly check permissions, allowing any user with Overall/Read permission to get a list of valid credentials IDs. Those could be used as part of an attack to capture the credentials using another vulnerability.
An enumeration of credentials IDs in CRX Content Package Deployer Plugin now requires the appropriate permission.
neoload-jenkins-plugin
NeoLoad Plugin stored credentials unencrypted in its global configuration file org.jenkinsci.plugins.neoload.integration.NeoGlobalConfig.xml
and in job config.xml
files on the Jenkins controller.
These credentials could be viewed by users with Extended Read permission or access to the Jenkins controller file system.
NeoLoad Plugin now stores these credentials encrypted.
icescrum
iceScrum Plugin did not perform permission checks on a method implementing form validation. This allowed users with Overall/Read access to Jenkins to initiate a connection test to an attacker-specified server with attacker-specified access token or username and password.
Additionally, the form validation method did not require POST requests, resulting in a CSRF vulnerability.
iceScrum Plugin now requires POST requests and Overall/Administer permission.
icescrum
iceScrum Plugin stored credentials unencrypted in job config.xml
files on the Jenkins controller.
These credentials could be viewed by users with Extended Read permission or access to the Jenkins controller file system.
iceScrum Plugin 1.1.5 and newer now stores these credentials encrypted.
bumblebee
Bumblebee HP ALM Plugin unconditionally disabled SSL/TLS certificate validation for connections to the HP ALM service.
Bumblebee HP ALM Plugin no longer does that. Instead, it now allows users to opt out of certificate validation.
google-kubernetes-engine
Missing permission checks in Google Kubernetes Engine Plugin allowed users with Overall/Read permission to obtain limited information about the scope and access of a credential with an attacker-specified credential ID obtained through another method.
Google Kubernetes Engine Plugin now requires Job/Configure permission for these operations.
vmanager-plugin
Cadence vManager Plugin unconditionally disabled SSL/TLS certificate validation for the entire Jenkins controller JVM.
Cadence vManager Plugin no longer does that. Instead, it now has an opt-in option to ignore SSL/TLS errors for its connections.
puppet-enterprise-pipeline
Puppet Enterprise Pipeline Plugin defines a custom list of pre-approved signatures for all scripts protected by the Script Security sandbox.
This custom list of pre-approved signatures allows the use of methods that can be used to bypass Script Security sandbox protection. This results in arbitrary code execution on any Jenkins instance with this plugin installed.
As of publication of this advisory there is no fix.
sofy-ai
Sofy.AI Plugin stores an API token unencrypted in job config.xml
files on the Jenkins controller.
This token can be viewed by users with Extended Read permission or access to the Jenkins controller file system.
As of publication of this advisory there is no fix.
extensivetesting
Extensive Testing Plugin stores credentials unencrypted in job config.xml
files on the Jenkins controller.
These credentials can be viewed by users with Extended Read permission or access to the Jenkins controller file system.
As of publication of this advisory there is no fix.
fortify-on-demand-uploader
Fortify on Demand Plugin stores credentials unencrypted in job config.xml
files on the Jenkins controller.
These credentials can be viewed by users with Extended Read permission or access to the Jenkins controller file system.
As of publication of this advisory there is no fix.
elasticbox
ElasticBox CI Plugin stores an access token unencrypted in the global config.xml
configuration file on the Jenkins controller.
This token can be viewed by users with access to the Jenkins controller file system.
As of publication of this advisory there is no fix.
cloudtest
SOASTA CloudTest Plugin stores credentials unencrypted in its global configuration file com.soasta.jenkins.CloudTestServer.xml
on the Jenkins controller.
These credentials could be viewed by users with access to the Jenkins controller file system.
As of publication of this advisory there is no fix.
view26
View26 Test-Reporting Plugin stores an access token unencrypted in job config.xml
files on the Jenkins controller.
This token can be viewed by users with Extended Read permission or access to the Jenkins controller file system.
As of publication of this advisory there is no fix.
delphix
Delphix Plugin stores credentials unencrypted in its global configuration file io.jenkins.plugins.delphix.GlobalConfiguration.xml
on the Jenkins controller.
These credentials could be viewed by users with access to the Jenkins controller file system.
As of publication of this advisory there is no fix.
rundeck
Rundeck Plugin does not perform permission checks on a method implementing form validation. This allows users with Overall/Read access to Jenkins to initiate a connection test to an attacker-specified server with attacker-specified username and password.
Additionally, the form validation method does not require POST requests, resulting in a CSRF vulnerability.
As of publication of this advisory there is no fix.
oracle-cloud-infrastructure-compute-classic
Oracle Cloud Infrastructure Compute Classic Plugin does not perform permission checks on a method implementing form validation. This allows users with Overall/Read access to Jenkins to initiate a connection test to an attacker-specified server with attacker-specified username and password.
Additionally, the form validation method does not require POST requests, resulting in a CSRF vulnerability.
As of publication of this advisory there is no fix.
These versions include fixes to the vulnerabilities described above. All prior versions are considered to be affected by these vulnerabilities unless otherwise indicated.
As of publication of this advisory, no fixes are available for the following plugins:
Learn why we announce these issues.
The Jenkins project would like to thank the reporters for discovering and reporting these vulnerabilities: