This advisory announces vulnerabilities in the following Jenkins deliverables:
m2release
Maven Release Plug-in Plugin retrieves XML from Nexus repository manager APIs. Maven Release Plug-in Plugin 0.16.1 and earlier does not configure the XML parser to prevent XML external entity (XXE) attacks. While Jenkins users without Overall/Administer permission are not allowed to configure a custom Nexus URL, this could still be exploited via man-in-the-middle attacks, especially if it’s not an HTTPS URL.
Additionally, a connection test form validation method does not require POST requests, resulting in a cross-site request forgery vulnerability. Combined, these two vulnerabilities allow attackers to have Jenkins parse crafted XML documents that use external entities for extraction of secrets from the Jenkins controller, server-side request forgery, or denial-of-service attacks.
Maven Release Plug-in Plugin 0.16.2 configures its XML parser to prevent XML external entity (XXE) attacks. It also now requires that requests to the connection test form validation method are done via POST, which protects from cross-site request forgery attacks.
gerrit-trigger
Gerrit Trigger Plugin 2.30.1 and earlier does not perform permission checks in methods performing form validation. This allows users with Overall/Read access to perform connection tests, connecting to an HTTP URL or SSH server using attacker-specified credentials, or determine whether files with an attacker-specified path exist on the Jenkins controller file system.
Additionally, these form validation methods do not require POST requests, resulting in a CSRF vulnerability.
Gerrit Trigger Plugin 2.30.2 requires POST requests and Overall/Administer permission for the affected form validation methods.
build-failure-analyzer
Build Failure Analyzer Plugin 1.24.1 and earlier does not perform a permission check in a method performing form validation. This allows users with Overall/Read access to supply a computationally expensive regular expression that will hang the request handling thread.
Additionally, this form validation method does not require POST requests, resulting in a CSRF vulnerability.
Build Failure Analyzer Plugin 1.24.2 requires POST requests and implements a permission check for the affected form validation methods so that only authorized users are able to submit regular expressions.
Additionally, the regular expression is implemented in an interruptible way, so that unintentionally expensive regular expression processing can be interrupted.
pipeline-aggregator-view
Pipeline Aggregator View Plugin 1.8 and earlier does not escape the information shown on the view it provides, such as stage names or job names.
This results in a stored cross-site scripting vulnerability exploitable by users able to configure jobs, define pipeline stages, or otherwise affect the information shown by Pipeline Aggregator View Plugin.
Pipeline Aggregator View Plugin 1.9 escapes user-controlled information on the view it provides.
rundeck
Rundeck Plugin 3.6.5 and earlier stores credentials as part of its global configuration file org.jenkinsci.plugins.rundeck.RundeckNotifier.xml
and job config.xml
files on the Jenkins controller.
These URLs could be viewed by users with Extended Read permission (in the case of job config.xml
files) or access to the Jenkins controller file system.
Rundeck Plugin 3.6.6 stores credentials in its configuration encrypted once global and/or job configurations are saved again.
redgate-sql-ci
Redgate SQL Change Automation Plugin 2.0.3 and earlier stores credentials unencrypted in job config.xml
files on the Jenkins controller as part of its build step configuration.
These credentials can be viewed by users with Extended Read permission or access to the Jenkins controller file system.
Redgate SQL Change Automation Plugin 2.0.4 stores its credentials encrypted once job configurations are saved again.
inflectra-spira-integration
Spira Importer Plugin 3.2.3 and earlier unconditionally disables SSL/TLS certificate validation for the entire Jenkins controller JVM.
Spira Importer Plugin 3.2.4 no longer disables SSL/TLS certificate validation.
websphere-deployer
WebSphere Deployer Plugin 1.6.1 and earlier does not perform permission checks in methods performing form validation. This allows users with Overall/Read access to perform connection tests, determine whether files with an attacker-specified path exist on the Jenkins controller file system, and obtain limited information about the Jenkins and plugin configuration based on the responses. The latter include the ability to set plugin configuration options.
Additionally, these form validation methods do not require POST requests, resulting in a CSRF vulnerability.
As of publication of this advisory, there is no fix.
websphere-deployer
WebSphere Deployer Plugin 1.6.1 and earlier allows users with Overall/Read access to disable SSL/TLS certificate and hostname validation for the entire Jenkins controller JVM, or specify a new Java keystore from a file stored on the Jenkins controller filesystem.
As of publication of this advisory, there is no fix.
buildgraph-view
buildgraph-view Plugin 1.8 and earlier does not escape the description of builds shown in its view.
This results in a stored cross-site scripting vulnerability that can be exploited by users able to change the build description.
As of publication of this advisory, there is no fix.
mission-control-view
Mission Control Plugin 0.9.16 and earlier does not escape job display names and build names in the view it provides.
This results in a stored cross-site scripting vulnerability that can be exploited by users able to change these properties.
As of publication of this advisory, there is no fix.
teamconcert
Team Concert Plugin 1.3.0 and earlier does not perform permission checks on a method implementing form validation. This allows 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 does not require POST requests, resulting in a CSRF vulnerability.
As of publication of this advisory, there is no fix.
teamconcert
Team Concert Plugin 1.3.0 and earlier provides a list of applicable credential IDs to allow users configuring the plugin to select the one to use.
This functionality does not correctly check permissions, allowing any user with Overall/Read permission to get a list of valid credentials IDs. Those can be used as part of an attack to capture the credentials using another vulnerability.
As of publication of this advisory, there is no fix.
SCTMExecutor
SCTMExecutor Plugin 2.2 and earlier stores Silk Central credentials in the global Jenkins configuration and in job config.xml
files.
While these credentials are stored encrypted on disk, they are transmitted in plain text as part of the configuration form. This can result in exposure of these credentials through browser extensions, cross-site scripting vulnerabilities, and similar situations.
As of publication of this advisory, there is no fix.
mantis
Mantis Plugin 0.26 and earlier does not require POST requests on a connection test method, resulting in a CSRF vulnerability. This allows attackers to have Jenkins connect to Mantis-related paths on an attacker-specified web server using attacker-specified credentials.
As of publication of this advisory, there is no fix.
rapiddeploy-jenkins
RapidDeploy Plugin 4.1 and earlier does not perform a permission check on form validation methods. This allows users with Overall/Read access to Jenkins to connect to RapidDeploy-related paths on an attacker-specified web server.
Additionally, these form validation methods do not require POST requests, resulting in a CSRF vulnerability.
As of publication of this advisory, there is no fix.
weibo
Weibo Plugin 1.0.1 and earlier stores a credential unencrypted in its global configuration file org.jenkinsci.plugins.weibo.WeiboNotifier.xml
on the Jenkins controller.
This credential can be viewed by users with access to the Jenkins controller file system.
As of publication of this advisory, there is no fix.
alauda-devops-pipeline
Alauda DevOps Pipeline Plugin 2.3.2 and earlier does not perform permission checks on a method implementing form validation. This allows users with Overall/Read access to Jenkins to connect to Kubernetes-related paths on an attacker-specified web server using attacker-specified credentials IDs obtained through another method, capturing token credentials managed by Alauda DevOps Pipeline Plugin.
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.
alauda-kubernetes-support
Alauda Kubernetes Suport Plugin 2.3.0 and earlier does not require POST requests on a connection test method, resulting in a CSRF vulnerability. This allows attackers to have Jenkins connect to Kubernetes-related paths on an attacker-specified web server using attacker-specified credentials IDs obtained through another method, capturing 'Secret Text' credentials stored in Jenkins.
Additionally, if no credentials ID is specified, the connection uses the default Kubernetes token from /var/run/secrets/kubernetes.io/serviceaccount/token
.
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: