==================================================================== CERT-Renater Note d'Information No. 2019/VULN278 _____________________________________________________________________ DATE : 12/09/2019 HARDWARE PLATFORM(S): / OPERATING SYSTEM(S): Systems running Aqua Security Serverless Scanner Plugin for Jenkins, Beaker builder Plugin for Jenkins, Build Environment Plugin for Jenkins, Dashboard View Plugin for Jenkins, Git client Plugin for Jenkins, Script Security Plugin for Jenkins. ===================================================================== https://jenkins.io/security/advisory/2019-09-12/#SECURITY-1545 _____________________________________________________________________ Jenkins Security Advisory 2019-09-12 This advisory announces vulnerabilities in the following Jenkins deliverables: Aqua Security Serverless Scanner Plugin Beaker builder Plugin Build Environment Plugin Dashboard View Plugin Git client Plugin Script Security Plugin Descriptions System command execution vulnerability in Git client Plugin SECURITY-1534 / CVE-2019-10392 Git client Plugin accepts user-specified values as argument to an invocation of git ls-remote to validate the existence of a Git repository at the specified URL. This was implemented in a way that allowed attackers with Job/Configure permission to execute an arbitrary system command on the Jenkins master as the OS user that the Jenkins process is running as. Git client Plugin now rejects repository URLs that do not appear to be valid URLs. Additionally, for versions of Git that support it, the repository URL argument is separated from option arguments using the -- separator to prevent interpretation as an option. Sandbox bypass vulnerability in Script Security Plugin SECURITY-1538 / CVE-2019-10393, CVE-2019-10394, CVE-2019-10399, CVE-2019-10400 Sandbox protection in Script Security Plugin could be circumvented through any of the following: Crafted method names in method call expressions (CVE-2019-10393) Crafted property names in property expressions on the left-hand side of assignment expressions (CVE-2019-10394) Crafted property names in property expressions in increment and decrement expressions (CVE-2019-10399) Crafted subexpressions in increment and decrement expressions not involving actual assignment (CVE-2019-10400) This allowed attackers able to specify and run sandboxed scripts to execute arbitrary code in the context of the Jenkins master JVM. These expressions are now subject to sandbox protection. Stored XSS vulnerability in Build Environment Plugin SECURITY-1476 / CVE-2019-10395 Build Environment Plugin did not escape values of environment variables shown on its views. This resulted in a cross-site scripting vulnerability exploitable by attackers able to control the values of build environment variables, typically users with Job/Configure or Job/Build permission. Jenkins applies the missing escaping by default since 2.146 and LTS 2.138.2, so newer Jenkins releases are not affected by this vulnerability. Build Environment Plugin now escapes all variables displayed in its views. Stored XSS vulnerability in Dashboard View Plugin SECURITY-1489 / CVE-2019-10396 Dashboard View Plugin did not escape the build description on the Latest Builds View. This resulted in a cross-site scripting vulnerability exploitable by attackers able to control the description of builds shown on that view. Dashboard View Plugin now applies the configured markup formatter to the build description, rendering it as it appears elsewhere in Jenkins. Aqua Security Serverless Scanner Plugin showed plain text password in job configuration form fields SECURITY-1509 / CVE-2019-10397 Aqua Security Serverless Scanner Plugin stores service passwords in job configurations. While the password is stored encrypted on disk, it was transmitted in plain text as part of the configuration form. This could result in exposure of the password through browser extensions, cross-site scripting vulnerabilities, and similar situations. Aqua Security Serverless Scanner Plugin no longer transmits the password form field in plain text. Beaker builder Plugin stored credentials in plain text SECURITY-1545 / CVE-2019-10398 Beaker builder Plugin stored the Beaker password unencrypted on the Jenkins master. This password could be viewed by users with access to the master file system. Beaker builder Plugin now stores these credentials encrypted. Severity SECURITY-1476: Medium SECURITY-1489: Medium SECURITY-1509: Low SECURITY-1534: High SECURITY-1538: High SECURITY-1545: Low Affected Versions Aqua Security Serverless Scanner Plugin up to and including 1.0.4 Beaker builder Plugin up to and including 1.9 Build Environment Plugin up to and including 1.6 Dashboard View Plugin up to and including 2.11 Git client Plugin up to and including 2.8.4 Script Security Plugin up to and including 1.62 Fix Aqua Security Serverless Scanner Plugin should be updated to version 1.0.5 Beaker builder Plugin should be updated to version 1.10 Build Environment Plugin should be updated to version 1.7 Dashboard View Plugin should be updated to version 2.12 Git client Plugin should be updated to version 2.8.5 Script Security Plugin should be updated to version 1.63 These versions include fixes to the vulnerabilities described above. All prior versions are considered to be affected by these vulnerabilities unless otherwise indicated. Credit The Jenkins project would like to thank the reporters for discovering and reporting these vulnerabilities: Francesco Soncina - ABN AMRO Red Team - https://iwantmore.pizza for SECURITY-1534 James Holderness, IB Boost for SECURITY-1509, SECURITY-1545 Nils Emmerich of ERNW Research GmbH for SECURITY-1538 Viktor Gazdag NCC Group for SECURITY-1476, SECURITY-1489 ========================================================= + CERT-RENATER | tel : 01-53-94-20-44 + + 23/25 Rue Daviel | fax : 01-53-94-20-41 + + 75013 Paris | email:cert@support.renater.fr + =========================================================