Jenkins Security Advisory 2022-11-15

This advisory announces vulnerabilities in the following Jenkins deliverables:

Descriptions

Whole-script approval in Script Security Plugin vulnerable to SHA-1 collisions

SECURITY-2564 / CVE-2022-45379
Severity (CVSS): High
Affected plugin: script-security
Description:

Script Security Plugin 1189.vb_a_b_7c8fd5fde and earlier stores whole-script approvals as the SHA-1 hash of the approved script. SHA-1 no longer meets the security standards for producing a cryptographically secure message digest.

Script Security Plugin 1190.v65867a_a_47126 uses SHA-512 for new whole-script approvals. Previously approved scripts will have their SHA-1 based whole-script approval replaced with a corresponding SHA-512 whole-script approval when the script is next used.

Whole-script approval only stores the SHA-1 or SHA-512 hash, so it is not possible to migrate all previously approved scripts automatically on startup.

Administrators concerned about SHA-1 collision attacks on the whole-script approval feature are able to revoke all previous (SHA-1) script approvals on the In-Process Script Approval page.

Stored XSS vulnerability in JUnit Plugin

SECURITY-2888 / CVE-2022-45380
Severity (CVSS): High
Affected plugin: junit
Description:

JUnit Plugin 1159.v0b_396e1e07dd and earlier converts HTTP(S) URLs in test report output to clickable links.

This is done in an unsafe manner, resulting in a stored cross-site scripting (XSS) vulnerability exploitable by attackers with Item/Configure permission.

JUnit Plugin 1160.vf1f01a_a_ea_b_7f no longer converts URLs to clickable links.

Remote code execution vulnerability in Pipeline Utility Steps Plugin

SECURITY-2948 / CVE-2022-33980
Severity (CVSS): High
Affected plugin: pipeline-utility-steps
Description:

Pipeline Utility Steps Plugin implements a readProperties Pipeline step that supports interpolation of variables using the Apache Commons Configuration library.

Pipeline Utility Steps Plugin 2.13.0 and earlier does not restrict the set of enabled prefix interpolators and bundles versions of this library with the vulnerability CVE-2022-33980.

This vulnerability allows attackers able to configure Pipelines to execute arbitrary code in the context of the Jenkins controller JVM.

Pipeline Utility Steps Plugin 2.13.1 bundles version 2.8.0 of the Apache Commons Configuration library, which disables the problematic prefix interpolators by default.

Arbitrary file read vulnerability in Pipeline Utility Steps Plugin

SECURITY-2949 / CVE-2022-45381
Severity (CVSS): High
Affected plugin: pipeline-utility-steps
Description:

Pipeline Utility Steps Plugin implements a readProperties Pipeline step that supports interpolation of variables using the Apache Commons Configuration library.

Pipeline Utility Steps Plugin 2.13.1 and earlier does not restrict the set of enabled prefix interpolators and bundles versions of this library that enable the file: prefix interpolator by default.

This allows attackers able to configure Pipelines to read arbitrary files from the Jenkins controller file system.

Pipeline Utility Steps Plugin 2.13.2 restricts the set of prefix interpolators enabled by default to base64Decoder:, base64Encoder:, date:, urlDecoder:, and urlEncoder:.

Administrators can set the Java system property org.jenkinsci.plugins.pipeline.utility.steps.conf.ReadPropertiesStepExecution.CUSTOM_PREFIX_INTERPOLATOR_LOOKUPS to customize which prefix interpolators are enabled.

Stored XSS vulnerability in Naginator Plugin

SECURITY-2946 / CVE-2022-45382
Severity (CVSS): High
Affected plugin: naginator
Description:

Naginator Plugin 1.18.1 and earlier does not escape display names of source builds in builds that were triggered via Retry action.

This results in a stored cross-site scripting (XSS) vulnerability exploitable by attackers able to edit build display names.

Naginator Plugin 1.18.2 escapes display names of source builds.

Incorrect permission checks in Support Core Plugin

SECURITY-2804 / CVE-2022-45383
Severity (CVSS): Medium
Affected plugin: support-core
Description:

Support Core Plugin defines the permission Support/DownloadBundle that allows users without Overall/Administer permission to create and download support bundles containing a limited set of diagnostic information.

Support Core Plugin 1206.v14049fa_b_d860 and earlier does not correctly perform permission checks in several HTTP endpoints.

This allows attackers with Support/DownloadBundle permission to download a previously created support bundle containing information limited to users with Overall/Administer permission.

Support Core Plugin 1206.1208.v9b_7a_1d48db_0f deprecates the Support/DownloadBundle permission. The Overall/Administer permission is now required to download support bundles.

Password stored in plain text by Reverse Proxy Auth Plugin

SECURITY-2094 / CVE-2022-45384
Severity (CVSS): Low
Affected plugin: reverse-proxy-auth-plugin
Description:

Reverse Proxy Auth Plugin 1.7.3 and earlier stores the LDAP manager password unencrypted in the global config.xml file on the Jenkins controller as part of its configuration.

This password can be viewed by attackers with access to the Jenkins controller file system.

Reverse Proxy Auth Plugin 1.7.4 stores the LDAP manager password encrypted once its configuration is saved again.

Lack of authentication mechanism for webhook in CloudBees Docker Hub/Registry Notification Plugin

SECURITY-2843 / CVE-2022-45385
Severity (CVSS): Medium
Affected plugin: dockerhub-notification
Description:

CloudBees Docker Hub/Registry Notification Plugin provides several webhook endpoints that can be used to trigger builds when Docker images used by a job have been rebuilt.

In CloudBees Docker Hub/Registry Notification Plugin 2.6.2 and earlier, these endpoints can be accessed without authentication.

This allows unauthenticated attackers to trigger builds of jobs corresponding to the attacker-specified repository.

CloudBees Docker Hub/Registry Notification Plugin 2.6.2.1 requires a token as a part of webhook URLs, which will act as authentication for the webhook endpoint. As a result, all webhook URLs in the plugin will be different after updating the plugin.

Administrators can set the Java system property org.jenkinsci.plugins.registry.notification.webhook.JSONWebHook.DO_NOT_REQUIRE_API_TOKEN to true to disable this fix.

Passwords stored in plain text by NS-ND Integration Performance Publisher Plugin

SECURITY-2912 / CVE-2022-45392
Severity (CVSS): Medium
Affected plugin: cavisson-ns-nd-integration
Description:

NS-ND Integration Performance Publisher Plugin 4.8.0.143 and earlier stores passwords unencrypted in job config.xml files on the Jenkins controller as part of its configuration.

These passwords can be viewed by attackers with Item/Extended Read permission or access to the Jenkins controller file system.

NS-ND Integration Performance Publisher Plugin 4.8.0.146 stores passwords encrypted once job configurations are saved again.

SSL/TLS certificate validation globally and unconditionally disabled by NS-ND Integration Performance Publisher Plugin

SECURITY-2910 (1) / CVE-2022-45391
Severity (CVSS): Medium
Affected plugin: cavisson-ns-nd-integration
Description:

NS-ND Integration Performance Publisher Plugin 4.8.0.143 and earlier globally and unconditionally disables SSL/TLS certificate and hostname validation for the entire Jenkins controller JVM.

NS-ND Integration Performance Publisher Plugin 4.8.0.146 no longer disables SSL/TLS certificate and hostname validation globally.

SSL/TLS certificate validation unconditionally disabled by NS-ND Integration Performance Publisher Plugin

SECURITY-2910 (2) / CVE-2022-38666
Severity (CVSS): Medium
Affected plugin: cavisson-ns-nd-integration
Description:

NS-ND Integration Performance Publisher Plugin 4.8.0.146 and earlier unconditionally disables SSL/TLS certificate and hostname validation for several features.

As of publication of this advisory, there is no fix. Learn why we announce this.

XXE vulnerability on agents in Violations Plugin

SECURITY-766 / CVE-2022-45386
Severity (CVSS): Medium
Affected plugin: violations
Description:

Violations Plugin 0.7.11 and earlier does not configure its XML parser to prevent XML external entity (XXE) attacks.

This allows attackers to to control XML input files for the 'Report Violations' post-build step to have agent processes parse a crafted file that uses external entities for extraction of secrets from the Jenkins agent or server-side request forgery.

Because Jenkins agent processes usually execute build tools whose input (source code, build scripts, etc.) is controlled externally, this vulnerability only has a real impact in very narrow circumstances: when attackers can control XML files, but are unable to change build steps, Jenkinsfiles, test code that gets executed on the agents, or similar.

As of publication of this advisory, there is no fix. Learn why we announce this.

Stored XSS vulnerability in BART Plugin

SECURITY-2802 / CVE-2022-45387
Severity (CVSS): High
Affected plugin: bart
Description:

BART Plugin 1.0.3 and earlier does not escape the parsed content of build logs before rendering it on the Jenkins UI.

This results in a stored cross-site scripting (XSS) vulnerability exploitable by attackers with Item/Configure permission.

As of publication of this advisory, there is no fix. Learn why we announce this.

Arbitrary file read vulnerability in Config Rotator Plugin

SECURITY-2842 / CVE-2022-45388
Severity (CVSS): High
Affected plugin: config-rotator
Description:

Config Rotator Plugin 2.0.1 and earlier does not restrict a file name query parameter in an HTTP endpoint.

This allows unauthenticated attackers to read arbitrary files with .xml extension on the Jenkins controller file system.

As of publication of this advisory, there is no fix. Learn why we announce this.

Lack of authentication mechanism for webhook in XP-Dev Plugin

SECURITY-2853 / CVE-2022-45389
Severity (CVSS): Medium
Affected plugin: xpdev
Description:

XP-Dev Plugin provides a webhook endpoint at /xpdev-webhook that can be used to trigger builds configured to use a specified repository.

In XP-Dev Plugin 1.0 and earlier, this endpoint can be accessed without authentication.

This allows unauthenticated attackers to trigger builds of jobs corresponding to an attacker-specified repository.

As of publication of this advisory, there is no fix. Learn why we announce this.

Missing permission check in loader.io Plugin allows enumerating credentials IDs

SECURITY-2857 / CVE-2022-45390
Severity (CVSS): Medium
Affected plugin: loaderio-jenkins-plugin
Description:

loader.io Plugin 1.0.1 and earlier does not perform a permission check in an HTTP endpoint.

This allows attackers with Overall/Read permission to enumerate credentials IDs of credentials stored in Jenkins. Those can be used as part of an attack to capture the credentials using another vulnerability.

As of publication of this advisory, there is no fix. Learn why we announce this.

CSRF vulnerability and missing permission check in Delete log Plugin

SECURITY-2920 / CVE-2022-45393 (CSRF), CVE-2022-45394 (missing permission check)
Severity (CVSS): Medium
Affected plugin: delete-log-plugin
Description:

Delete log Plugin 1.0 and earlier does not perform a permission check in an HTTP endpoint.

This allows attackers with Item/Read permission to delete build logs.

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

As of publication of this advisory, there is no fix. Learn why we announce this.

XXE vulnerability on agents in CCCC Plugin

SECURITY-2921 / CVE-2022-45395
Severity (CVSS): Medium
Affected plugin: cccc
Description:

CCCC Plugin 0.6 and earlier does not configure its XML parser to prevent XML external entity (XXE) attacks.

This allows attackers able to control the contents of the report file for the 'Publish CCCC Report' post-build step to have agent processes parse a crafted file that uses external entities for extraction of secrets from the Jenkins agent or server-side request forgery.

Because Jenkins agent processes usually execute build tools whose input (source code, build scripts, etc.) is controlled externally, this vulnerability only has a real impact in very narrow circumstances: when attackers can control XML files, but are unable to change build steps, Jenkinsfiles, test code that gets executed on the agents, or similar.

As of publication of this advisory, there is no fix. Learn why we announce this.

XXE vulnerability on agents in SourceMonitor Plugin

SECURITY-2927 / CVE-2022-45396
Severity (CVSS): Medium
Affected plugin: sourcemonitor
Description:

SourceMonitor Plugin 0.2 and earlier does not configure its XML parser to prevent XML external entity (XXE) attacks.

This allows attackers able to control XML input files for the 'Publish SourceMonitor results' post-build step to have agent processes parse a crafted file that uses external entities for extraction of secrets from the Jenkins agent or server-side request forgery.

Because Jenkins agent processes usually execute build tools whose input (source code, build scripts, etc.) is controlled externally, this vulnerability only has a real impact in very narrow circumstances: when attackers can control XML files, but are unable to change build steps, Jenkinsfiles, test code that gets executed on the agents, or similar.

As of publication of this advisory, there is no fix. Learn why we announce this.

XXE vulnerability on agents in OSF Builder Suite : : XML Linter Plugin

SECURITY-2937 / CVE-2022-45397
Severity (CVSS): Medium
Affected plugin: osf-builder-suite-xml-linter
Description:

OSF Builder Suite : : XML Linter 1.0.2 and earlier does not configure its XML parser to prevent XML external entity (XXE) attacks.

This allows attackers able to control XML files that get processed by the 'OSF Builder Suite : : XML Linter' build step to have agent processes parse a crafted file that uses external entities for extraction of secrets from the Jenkins agent or server-side request forgery.

Because Jenkins agent processes usually execute build tools whose input (source code, build scripts, etc.) is controlled externally, this vulnerability only has a real impact in very narrow circumstances: when attackers can control XML files, but are unable to change build steps, Jenkinsfiles, test code that gets executed on the agents, or similar.

As of publication of this advisory, there is no fix. Learn why we announce this.

CSRF vulnerability and missing permission check in Cluster Statistics Plugin

SECURITY-2938 / CVE-2022-45398 (CSRF), CVE-2022-45399 (missing permission check)
Severity (CVSS): Medium
Affected plugin: cluster-stats
Description:

Cluster Statistics Plugin 0.4.6 and earlier does not perform a permission check in an HTTP endpoint.

This allows attackers with Overall/Read permission to delete recorded Jenkins Cluster Statistics.

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

As of publication of this advisory, there is no fix. Learn why we announce this.

XXE vulnerability in JAPEX Plugin

SECURITY-2941 / CVE-2022-45400
Severity (CVSS): High
Affected plugin: japex
Description:

JAPEX Plugin 1.7 and earlier does not configure its XML parser to prevent XML external entity (XXE) attacks.

This allows attackers able to control XML input files for the 'Record Japex test report' post-build step to have Jenkins parse a crafted file that uses external entities for extraction of secrets from the Jenkins controller or server-side request forgery.

As of publication of this advisory, there is no fix. Learn why we announce this.

Stored XSS vulnerability in Associated Files Plugin

SECURITY-2947 / CVE-2022-45401
Severity (CVSS): High
Affected plugin: associated-files
Description:

Associated Files Plugin 0.2.1 and earlier does not escape names of associated files.

This results in a stored cross-site scripting (XSS) vulnerability exploitable by attackers with Item/Configure permission.

As of publication of this advisory, there is no fix. Learn why we announce this.

Severity

Affected Versions

  • Associated Files Plugin up to and including 0.2.1
  • BART Plugin up to and including 1.0.3
  • CCCC Plugin up to and including 0.6
  • CloudBees Docker Hub/Registry Notification Plugin up to and including 2.6.2
  • Cluster Statistics Plugin up to and including 0.4.6
  • Config Rotator Plugin up to and including 2.0.1
  • Delete log Plugin up to and including 1.0
  • JAPEX Plugin up to and including 1.7
  • JUnit Plugin up to and including 1159.v0b_396e1e07dd
  • loader.io Plugin up to and including 1.0.1
  • Naginator Plugin up to and including 1.18.1
  • NS-ND Integration Performance Publisher Plugin up to and including 4.8.0.143
  • NS-ND Integration Performance Publisher Plugin up to and including 4.8.0.146
  • OSF Builder Suite : : XML Linter Plugin up to and including 1.0.2
  • Pipeline Utility Steps Plugin up to and including 2.13.0
  • Pipeline Utility Steps Plugin up to and including 2.13.1
  • Reverse Proxy Auth Plugin up to and including 1.7.3
  • Script Security Plugin up to and including 1189.vb_a_b_7c8fd5fde
  • SourceMonitor Plugin up to and including 0.2
  • Support Core Plugin up to and including 1206.v14049fa_b_d860
  • Violations Plugin up to and including 0.7.11
  • XP-Dev Plugin up to and including 1.0

Fix

  • CloudBees Docker Hub/Registry Notification Plugin should be updated to version 2.6.2.1
  • JUnit Plugin should be updated to version 1160.vf1f01a_a_ea_b_7f
  • Naginator Plugin should be updated to version 1.18.2
  • NS-ND Integration Performance Publisher Plugin should be updated to version 4.8.0.146
  • Pipeline Utility Steps Plugin should be updated to version 2.13.1
  • Pipeline Utility Steps Plugin should be updated to version 2.13.2
  • Reverse Proxy Auth Plugin should be updated to version 1.7.4
  • Script Security Plugin should be updated to version 1190.v65867a_a_47126
  • Support Core Plugin should be updated to version 1206.1208.v9b_7a_1d48db_0f

These versions include fixes to the vulnerabilities described above. All prior versions are considered to be affected by these vulnerabilities unless otherwise indicated.

As of publication of this advisory, no fixes are available for the following plugins:

  • Associated Files Plugin
  • BART Plugin
  • CCCC Plugin
  • Cluster Statistics Plugin
  • Config Rotator Plugin
  • Delete log Plugin
  • JAPEX Plugin
  • loader.io Plugin
  • NS-ND Integration Performance Publisher Plugin
  • OSF Builder Suite : : XML Linter Plugin
  • SourceMonitor Plugin
  • Violations Plugin
  • XP-Dev Plugin

Learn why we announce these issues.

Credit

The Jenkins project would like to thank the reporters for discovering and reporting these vulnerabilities:

  • Adrien Lecharpentier, CloudBees, Inc. for SECURITY-2804
  • CC Bomber, Kitri BoB for SECURITY-2920, SECURITY-2921, SECURITY-2927, SECURITY-2937, SECURITY-2938, SECURITY-2941, SECURITY-2946, SECURITY-2947
  • Daniel Beck, CloudBees, Inc. for SECURITY-766, SECURITY-2564, SECURITY-2910 (1), SECURITY-2910 (2), SECURITY-2912
  • James Nord, CloudBees, Inc. for SECURITY-2949
  • Jesse Glick, CloudBees, Inc. for SECURITY-2094
  • Kevin Guerroudj, CloudBees, Inc. for SECURITY-2842, SECURITY-2843, SECURITY-2853
  • Valdes Che Zogou, CloudBees, Inc. for SECURITY-2802, SECURITY-2857
  • Wadeck Follonier, CloudBees, Inc. for SECURITY-2888