This advisory announces multiple vulnerabilities in Jenkins, CloudBees Jenkins Platform and CloudBees Jenkins Solutions.
Path traversal vulnerability in Stapler allowed accessing internal data
SECURITY-867 / CVE-2018-1000997
A path traversal vulnerability in Stapler allowed viewing routable objects with views defined on any type. This could be used to access internal data of routable objects, commonly by showing their string representation (#toString()
).
Arbitrary file write vulnerability using file parameter definitions
SECURITY-1074 / CVE-2018-1000406
Users with Job/Configure permission could specify a relative path escaping the base directory in the file name portion of a file parameter definition. This path would be used to archive the uploaded file on the Jenkins master, resulting in an arbitrary file write vulnerability.
File parameters that escape the base directory are no longer accepted and the build will fail.
Reflected XSS vulnerability
SECURITY-1129 / CVE-2018-1000407
The wrapper
query parameter for the XML variant of the Jenkins remote API did not validate the specified tag name. This resulted in a reflected cross-site scripting vulnerability.
Only legal XML tag names are now allowed for the wrapper
query parameter.
Ephemeral user record was created on some invalid authentication attempts
SECURITY-1162 / CVE-2018-1999043
When attempting to authenticate using API token, an ephemeral user record was created to validate the token in case an external security realm was used, and the user record in Jenkins not previously saved, as (legacy) API tokens could exist without a persisted user record.
This behavior could be abused to create a large number of ephemeral user records in memory.
This is the same vulnerability as SECURITY-672 . The fix for SECURITY-672 was previously incorrectly applied and therefore not effective. This has been fixed.
Ephemeral user record creation
SECURITY-1128 / CVE-2018-1000408
By accessing a specific crafted URL on Jenkins instances using Jenkins' own user database , users without Overall/Read access could create ephemeral user records.
This behavior could be abused to create a large number of ephemeral user records in memory.
Accessing this URL now no longer results in a user record getting created.
Session fixation vulnerability on user signup
SECURITY-1158 / CVE-2018-1000409
When signing up for a new user account on instances using Jenkins' own user database , Jenkins did not invalidate the existing session and create a new one. This allowed session fixation.
Jenkins now invalidates the existing session and creates a new one when logging in after user signup.
Failures to process form submission data could result in secrets being displayed or written to logs
SECURITY-765 / CVE-2018-1000410
When Jenkins fails to process form submissions due to an internal error, the error message shown to the user and written to the log typically includes the serialized JSON form submission. Secrets, such as submitted passwords, might be included with the JSON object, and shown or written to disk in plain text.
Jenkins now masks values in these error messages from view if they were shown on the UI as password form fields.