This advisory announces multiple vulnerabilities in Jenkins, CloudBees Jenkins Platform, CloudBees Jenkins Solutions, and these plugins:
Arbitrary shell command execution on master by users with Agent-related permissions
SECURITY-478 / CVE-2017-1000393
Users with permission to create or configure agents in Jenkins could configure a launch method called Launch agent via execution of command on master . This allowed them to run arbitrary shell commands on the master node whenever the agent was supposed to be launched.
Configuration of this launch method now requires the Run Scripts permission typically only granted to administrators.
Note: A known limitation of this fix is that users without the Run Scripts permission are no longer able to configure agents with this launch method at all, even if the launch method remains unchanged. Because of this, a future release of Jenkins will move this launch method into a separate plugin. That plugin will depend on Script Security Plugin to secure this field and restore the ability of users without the Run Scripts permission to configure an agent with this launch method.
Jenkins core bundled vulnerable version of the commons-fileupload library
SECURITY-490 / CVE-2017-1000394
Jenkins bundled a version of the commons-fileupload library with the denial-of-service vulnerability known as CVE-2016-3092.
The fix for that vulnerability has been backported to the version of the library bundled with Jenkins.
"User" remote API disclosed users' email addresses
SECURITY-514 / CVE-2017-1000395
Information about Jenkins user accounts is generally available to anyone with Overall/Read permissions via the /user/(username)/api remote API. This included e.g. Jenkins users' email addresses if the Mailer Plugin is installed.
The remote API now no longer includes information beyond the most basic (user ID and name) unless the user requesting it is a Jenkins administrator or the user themselves.
Jenkins core bundled vulnerable version of the commons-httpclient library
SECURITY-555 / CVE-2017-1000396
Jenkins bundled a version of the commons-httpclient library with the vulnerability CVE-2012-6153 that incorrectly verified SSL certificates, making it susceptible to man-in-the-middle attacks.
This library is widely used as a transitive dependency in Jenkins plugins.
The fix for CVE-2012-6153 was backported to the version of commons-httpclient that is bundled in core and made available to plugins.
Maven Plugin bundled vulnerable version of the commons-httpclient library
SECURITY-557 / CVE-2017-1000397
Maven Plugin bundled a version of the commons-httpclient library with the vulnerability CVE-2012-6153 that incorrectly verified SSL certificates, making it susceptible to man-in-the-middle attacks.
Maven Plugin 2.17.1-cb-1 and 3.0 no longer have a dependency on commons-httpclient .
Swarm Plugin Client bundled vulnerable version of the commons-httpclient library
SECURITY-597 / CVE-2017-1000402
Swarm Plugin Client bundled a version of the commons-httpclient library with the vulnerability CVE-2012-6153 that incorrectly verified SSL certificates, making it susceptible to man-in-the-middle attacks.
The fix for CVE-2012-6153 was backported to the version of commons-httpclient bundled in Swarm Plugin Client.
Note: Please note that Swarm Plugin Client needs to be updated independently from the plugin. Updating just the plugin will not resolve the security vulnerability.
"Computer" remote API disclosed information about inaccessible jobs
SECURITY-611 / CVE-2017-1000398
The remote API at /computer/(agent-name)/api showed information about tasks (typically builds) currently running on that agent. This included information about tasks that the current user otherwise has no access to, e.g. due to lack of Job/Read permission.
This has been fixed, and the API now only shows information about accessible tasks.
"Queue Item" remote API disclosed information about inaccessible jobs
SECURITY-618 / CVE-2017-1000399
The remote API at /queue/item/(ID)/api showed information about tasks in the queue (typically builds waiting to start).
This included information about tasks that the current user otherwise has no access to, e.g. due to lack of Job/Read permission.
This has been fixed, and the API endpoint is now only available for tasks that the current user has access to.
"Job" remote API disclosed information about inaccessible upstream/downstream jobs
SECURITY-617 / CVE-2017-1000400
The remote API at /job/(job-name)/api contained information about upstream and downstream projects.
This included information about tasks that the current user otherwise has no access to, e.g. due to lack of Job/Read permission.
This has been fixed, and the API now only lists upstream and downstream projects that the current user has access to.
Form validation for password fields was sent via GET
SECURITY-616 / CVE-2017-1000401
The Jenkins default form control for passwords and other secrets, <f:password/> , supports form validation (e.g. for API keys).
The form validation AJAX requests were sent via GET, which could result in secrets being logged to a HTTP access log in non-default configurations of Jenkins, and made available to users with access to these log files.
Form validation for <f:password/> is now always sent via POST, with the password in the request body, which is typically not logged.
Arbitrary code execution vulnerability in Speaks! Plugin
SECURITY-623 / CVE-2017-1000403
This plugin allows users with Job/Configure permission to run arbitrary Groovy code inside the Jenkins JVM, effectively elevating privileges to Overall/Run Scripts .
As of publication of this advisory, there is no fix.