Date: Mon, 5 Feb 2018 13:17:40 +0100
From: Daniel Beck <ml@...kweb.net>
To: oss-security@...ts.openwall.com
Subject: Multiple vulnerabilities in Jenkins plugins
Jenkins is an open source automation server which enables developers around
the world to reliably build, test, and deploy their software. The following
plugin releases contain fixes for security vulnerabilities:
* Android Lint 2.6
* CCM 3.2
* Credentials Binding 1.15
* JUnit 1.24
* Pipeline: Supporting APIs 2.18
Summaries of the vulnerabilities are below. More details, severity, and
attribution can be found here:
https://jenkins.io/security/advisory/2018-02-05/
We provide advance notification for security updates on this mailing list:
https://groups.google.com/d/forum/jenkinsci-advisories
If you find security vulnerabilities in Jenkins, please report them as
described here:
https://jenkins.io/security/#reporting-vulnerabilities
---
SECURITY-521
JUnit plugin is affected by an XML External Entity (XXE) processing
vulnerability. This allows an attacker to configure build processes such
that JUnit plugin parses a maliciously crafted file that uses external
entities for extraction of secrets from the Jenkins master, server-side
request forgery, or denial-of-service attacks.
SECURITY-659 (CCM)
SECURITY-660 (Android Lint)
Multiple plugins based on Static Analysis Utilities plugin are affected
by an XML External Entity (XXE) processing vulnerability. This allows an
attacker to configure build processes such that one of these plugins
parses a maliciously crafted file that uses external entities for
extraction of secrets from the Jenkins master, server-side request
forgery, or denial-of-service attacks.
SECURITY-698
Credentials Binding plugin allows specifying passwords and other secrets as
environment variables, and will hide them from console output in builds.
However, since Jenkins will try to resolve references to other environment
variables in environment variables passed to a build, this can result in
other values than the one specified being provided to a build. For
example, the value p4$$w0rd would result in Jenkins passing on p4$w0rd, as
$$ is the escape sequence for a single $.
Credentials Binding plugin does not prevent such a transformed value (e.g.
p4$w0rd) from being shown on the build log, allowing users to reconstruct
the actual password value from the transformed one.
Credentials Binding plugin will now escape any $ characters in password
values so they are correctly passed to the build.
SECURITY-699
Arbitrary code execution due to incomplete sandbox protection in Pipeline:
Supporting APIs Plugin: Methods related to Java deserialization like
readResolve implemented in Pipeline scripts were not subject to sandbox
protection, and could therefore execute arbitrary code. This could be
exploited e.g. by regular Jenkins users with the permission to configure
Pipelines in Jenkins, or by trusted committers to repositories containing
Jenkinsfiles.
Deserialization of objects in Pipeline is now also subject to sandbox
protection.