Jenkins Security Advisory 2018-01-22

This advisory announces vulnerabilities in the following Jenkins deliverables:

Description

XXE vulnerabilities in multiple static analysis plugins

  • SECURITY-655 / CVE-2018-1000008 (PMD)

  • SECURITY-656 / CVE-2018-1000009 (Checkstyle)

  • SECURITY-657 / CVE-2018-1000010 (DRY)

  • SECURITY-658 / CVE-2018-1000011 (FindBugs)

  • SECURITY-695 / CVE-2018-1000012 (Warnings)

Multiple plugins based on Static Analysis Utilities plugin are affected by an XML External Entity (XXE) processing vulnerability. This allows 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 controller, server-side request forgery, or denial-of-service attacks.

External entity resolution has been disabled for these plugins.

CSRF vulnerability in Release plugin

SECURITY-607 / CVE-2018-1000013

Release plugin did not require form submissions to be submitted via POST, resulting in a CSRF vulnerability allowing attackers to trigger release builds.

Access to the form action URL now requires POST.

CSRF vulnerability in Translation Assistance plugin

SECURITY-507 / CVE-2018-1000014

Translation Assistance plugin did not require form submissions to be submitted via POST, resulting in a CSRF vulnerability allowing attackers to override localized strings displayed to all users on the current Jenkins instance if the victim is a Jenkins administrator.

Access to the form action URL now requires POST.

Incorrect permission checks in Pipeline: Nodes and Processes plugin allows executing builds on agents while lacking Computer/Build permission

SECURITY-675 / CVE-2018-1000015

On instances with Authorize Project plugin, the authentication associated with a build may lack the Computer/Build permission on some agents. This did not prevent the execution of node blocks on those agents due to incorrect permissions checks in Pipeline: Nodes and Processes plugin.

Build permissions on agents are now properly enforced for node steps.

XSS vulnerability in job configuration forms in Ant plugin

SECURITY-624 and SECURITY-694

Ant plugin failed to escape tool names it shows on job configuration screens, resulting in a cross-site scripting (XSS) vulnerability that is exploitable only by Jenkins administrators.

This is the same vulnerability that was announced without a fix on 2017-12-05. Contrary to what we wrote in that security advisory, Ant Plugin shows both the JDK and Ant tools on the configuration screen, and the vulnerability in Ant plugin was responsible for both problems we confirmed in the previous advisory.

Ant plugin now correctly escapes tool names shown on the job configuration screen.

Severity

Affected Versions

  • Ant Plugin up to and including 1.7
  • checkstyle Plugin up to and including 3.49
  • dry Plugin up to and including 2.49
  • findbugs Plugin up to and including 4.71
  • Pipeline: Nodes and Processes Plugin up to and including 2.17
  • pmd Plugin up to and including 1.7
  • Release Plugin up to and including 2.9
  • Translation Assistance Plugin up to and including 1.15
  • warnings Plugin up to and including 4.64

Fix

  • Ant Plugin should be updated to version 1.8
  • checkstyle Plugin should be updated to version 3.5
  • dry Plugin should be updated to version 2.5
  • findbugs Plugin should be updated to version 4.72
  • Pipeline: Nodes and Processes Plugin should be updated to version 2.18
  • pmd Plugin should be updated to version 1.8
  • Release Plugin should be updated to version 2.1
  • Translation Assistance Plugin should be updated to version 1.16
  • warnings Plugin should be updated to version 4.65

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:

  • Adith Sudhakar for SECURITY-655, SECURITY-656, SECURITY-657, SECURITY-658
  • Jesse Glick, CloudBees, Inc. for SECURITY-607, SECURITY-675
  • Oleg Nenashev, CloudBees, Inc. for SECURITY-507