CloudBees Security Advisory 2023-09-20

This advisory announces vulnerabilities in CloudBees CI and Jenkins

CasC Export should escape variable expressions

BEE-38184
Severity (CVSS):
High
Affected plugins:
cloudbees-casc-items-api cloudbees-casc-items-commons cloudbees-casc-items-controller cloudbees-casc-items-server
Description:

This plugin has a vulnerability by which, when loading previously exported yaml with unescaped variables, will resolve those variables to its values. This results on the exposure of those variable values and potentially leaking secrets if the contents of such variables are indeed, secrets

CasC Export will escape variable expressions; however, variable expression are not replaced when imported, unless a new configuration is set as pass thru.


Builds can be filtered by values of sensitive build variables 

SECURITY-3261 / CVE-2023-43494
Severity (CVSS): 
Medium
Description:

Jenkins allows filtering builds in the build history widget by specifying an expression that searches for matching builds by name, description, parameter values, etc.

Jenkins 2.50 through 2.423 (both inclusive), LTS 2.60.1 through 2.414.1 (both inclusive) does not exclude sensitive build variables (e.g., password parameter values) from this search.

This allows attackers with Item/Read permission to obtain values of sensitive variables used in builds by iteratively testing different characters until the correct sequence is discovered.

Jenkins 2.424, LTS 2.414.2 excludes sensitive variables from this search.

Stored XSS vulnerability 

SECURITY-3245 / CVE-2023-43495
Severity (CVSS): High
Description:

ExpandableDetailsNote allows annotating build log content with additional information that can be revealed when interacted with.

Jenkins 2.423 and earlier, LTS 2.414.1 and earlier does not escape the value of the caption constructor parameter of ExpandableDetailsNote.

This results in a stored cross-site scripting (XSS) vulnerability exploitable by attackers able to provide caption parameter values.

As of publication, the related API is not used within Jenkins (core), and the Jenkins security team is not aware of any affected plugins.

Jenkins 2.424, LTS 2.414.2 escapes caption constructor parameter values.

Temporary plugin file created with insecure permissions 

SECURITY-3072 / CVE-2023-43496
Severity (CVSS): High
Description:

Jenkins creates a temporary file when a plugin is deployed directly from a URL.

Jenkins 2.423 and earlier, LTS 2.414.1 and earlier creates this temporary file in the system temporary directory with the default permissions for newly created files.

If these permissions are overly permissive, they may allow attackers with access to the Jenkins controller file system to read and write the file before it is installed in Jenkins, potentially resulting in arbitrary code execution.

This vulnerability only affects operating systems using a shared temporary directory for all users (typically Linux). Additionally, the default permissions for newly created files generally only allow attackers to read the temporary file, but not write to it.

This issue complements SECURITY-2823, which affected plugins uploaded from an administrator’s computer.

Jenkins 2.424, LTS 2.414.2 creates the temporary file in a subdirectory with more restrictive permissions.

As a workaround, you can change your default temporary-file directory using the Java system property java.io.tmpdir, if you’re concerned about this issue but unable to immediately update Jenkins.

Temporary uploaded file created with insecure permissions 

SECURITY-3073 / CVE-2023-43497 (Stapler), CVE-2023-43498 (MultipartFormDataParser)
Severity (CVSS): Low
Description:

In Jenkins 2.423 and earlier, LTS 2.414.1 and earlier, uploaded files processed via the Stapler web framework and the Jenkins API MultipartFormDataParser create temporary files in the system temporary directory with the default permissions for newly created files.

If these permissions are overly permissive, attackers with access to the system temporary directory may be able to read and write the file before it is used.

This vulnerability only affects operating systems using a shared temporary directory for all users (typically Linux). Additionally, the default permissions for newly created files generally only allow attackers to read the temporary file, but not write to it.

Jenkins 2.424, LTS 2.414.2 creates the temporary files in a subdirectory with more restrictive permissions.

As a workaround, you can change your default temporary-file directory using the Java system property java.io.tmpdir, if you’re concerned about this issue but unable to immediately update Jenkins.

Stored XSS vulnerability in Build Failure Analyzer Plugin 

SECURITY-3244 / CVE-2023-43499
Severity (CVSS): High
Affected plugin: build-failure-analyzer
Description:

Build Failure Analyzer Plugin 2.4.1 and earlier does not escape Failure Cause names in build logs.

This results in a stored cross-site scripting (XSS) vulnerability exploitable by attackers able to create or update Failure Causes.

Build Failure Analyzer Plugin 2.4.2 escapes Failure Cause names in build logs.

CSRF vulnerability and missing permission check in Build Failure Analyzer Plugin allow SSRF 

SECURITY-3226 / CVE-2023-43500 (CSRF), CVE-2023-43501 (missing permission check)
Severity (CVSS): Medium
Affected plugin: build-failure-analyzer
Description:

Build Failure Analyzer Plugin 2.4.1 and earlier does not perform a permission check in a connection test HTTP endpoint.

This allows attackers with Overall/Read permission to connect to an attacker-specified hostname and port using attacker-specified username and password.

Additionally, this HTTP endpoint does not require POST requests, resulting in a cross-site request forgery (CSRF) vulnerability.

Build Failure Analyzer Plugin 2.4.2 requires POST requests and Overall/Administer permission for the affected HTTP endpoint.

CSRF vulnerability in Build Failure Analyzer Plugin allows deleting Failure Causes 

SECURITY-3239 / CVE-2023-43502
Severity (CVSS): Medium
Affected plugin: build-failure-analyzer
Description:

Build Failure Analyzer Plugin 2.4.1 and earlier does not require POST requests for an HTTP endpoint, resulting in cross-site request forgery (CSRF) vulnerabilities.

This vulnerability allows attackers to delete Failure Causes.

Build Failure Analyzer Plugin 2.4.2 requires POST requests for the affected HTTP endpoint.

Severity

Fix

  • CloudBees Traditional Platforms should be upgraded to 2.414.2.2.

  • CloudBees Cloud Platforms should be upgraded to 2.414.2.2.