This advisory announces vulnerabilities in the following Jenkins deliverables:
role-strategy
Role-based Authorization Strategy Plugin 2.12 and newer uses a cache to speed up permission lookups.
In Role-based Authorization Strategy Plugin 3.0 and earlier this cache is not invalidated properly when an administrator changes the permission configuration. This can result in permissions being granted long after the configuration was changed to no longer grant them.
Role-based Authorization Strategy Plugin 3.1 properly invalidates the cache on configuration changes.
audit-trail
Audit Trail Plugin logs requests whose URL path matches an admin-configured regular expression.
A discrepancy between the behavior of the plugin and the Stapler web framework in parsing URL paths allows attackers to craft URLs that would bypass request logging in Audit Trail Plugin 3.6 and earlier. This only applies to Jenkins 2.227 and earlier, LTS 2.204.5 and earlier, as the fix for SECURITY-1774 prohibits dispatch of affected requests.
Audit Trail Plugin 3.7 processes request URL paths the same way as the Stapler web framework.
audit-trail
Audit Trail Plugin uses regular expressions to match requested URLs whose dispatch should be logged.
In Audit Trail Plugin 3.6 and earlier, the default regular expression pattern could be bypassed in many cases by adding a suffix to the URL that would be ignored during request handling.
Audit Trail Plugin 3.7 changes the default regular expression pattern so that it allows for arbitrary suffixes. It automatically will replace previous default patterns with the new, more complete default pattern.
Additionally, an administrative monitor is shown if a user-specified pattern is found to be bypassable through crafted URLs and form validation was improved to recognize patterns that would not match requests with arbitrary suffixes.
uno-choice
Active Choices Plugin 2.4 and earlier does not escape the name and description of build parameters.
This results in a stored cross-site scripting (XSS) vulnerability exploitable by attackers with Job/Configure permission.
Active Choices Plugin 2.5 escapes the name of build parameters and applies the configured markup formatter to the description of build parameters.
uno-choice
Active Choices Plugin 2.4 and earlier does not escape List
and Map
return values of sandboxed scripts for Reactive Reference Parameter.
This results in a stored cross-site scripting (XSS) vulnerability exploitable by attackers with Job/Configure permission.
This issue is caused by an incomplete fix for SECURITY-470.
Active Choices Plugin 2.5 escapes all legal return values of sandboxed scripts.
couchdb-statistics
couchdb-statistics Plugin 0.3 and earlier stores its server password unencrypted in its global configuration file org.jenkinsci.plugins.couchstats.CouchStatsConfig.xml
on the Jenkins controller as part of its configuration.
This password can be viewed by users with access to the Jenkins controller file system.
couchdb-statistics Plugin 0.4 stores its server password encrypted once its configuration is saved again.
release
Release Plugin 2.10.2 and earlier does not escape the release version in the badge tooltip.
This results in a stored cross-site scripting (XSS) vulnerability exploitable by attackers with Release/Release permission.
As of publication of this advisory, there is no fix.
persona
Persona Plugin 2.4 and earlier allows users with Overall/Read permission to read arbitrary files on the Jenkins controller.
As of publication of this advisory, there is no fix.
maven-release-cascade
Maven Cascade Release Plugin 1.3.2 and earlier does not perform permission checks in several HTTP endpoints.
This allows attackers with Overall/Read permission to start cascade builds and layout builds, and reconfigure the plugin.
Additionally, these endpoints do not require POST requests, resulting in a cross-site request forgery (CSRF) vulnerability.
As of publication of this advisory, there is no fix.
shared-objects
Shared Objects Plugin 0.44 and earlier does not require POST requests for an HTTP endpoint, resulting in a cross-site request forgery (CSRF) vulnerability.
This vulnerability allows attackers to configure shared objects.
As of publication of this advisory, there is no fix.
sms
SMS Notification Plugin 1.2 and earlier stores an access token unencrypted in its global configuration file com.hoiio.jenkins.plugin.SMSNotification.xml
on the Jenkins controller as part of its configuration.
This access token can be viewed by users with access to the Jenkins controller file system.
As of publication of this advisory, there is no fix.
nerrvana-plugin
Nerrvana Plugin 1.02.06 and earlier does not configure its XML parser to prevent XML external entity (XXE) attacks.
This allows attackers with Overall/Read permission to have Jenkins parse a crafted HTTP request with XML data that uses external entities for extraction of secrets from the Jenkins controller or server-side request forgery.
Additionally, XML parsing is exposed as a form validation endpoint that does not require POST requests, allowing exploitation by users without Overall/Read permission via CSRF.
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: