This advisory announces vulnerabilities in the following Jenkins deliverables:
kubernetes
,
azure-keyvault
,
thycotic-devops-secrets-vault
Multiple plugins do not properly mask (i.e., replace with asterisks) credentials printed in the build log from Pipeline steps like sh
and bat
, when both of the following conditions are met:
The credentials are printed in build steps executing on an agent (typically inside a node
block).
Push mode for durable task logging is enabled.
This is a hidden option in Pipeline: Nodes and Processes that can be enabled through the Java system property org.jenkinsci.plugins.workflow.steps.durable_task.DurableTaskStep.USE_WATCHING
.
It is also automatically enabled by some plugins, e.g., OpenTelemetry and Pipeline Logging over CloudWatch.
The following plugins are affected by this vulnerability:
Kubernetes 3909.v1f2c633e8590 and earlier (SECURITY-3079 / CVE-2023-30513)
Azure Key Vault 187.va_cd5fecd198a_ and earlier (SECURITY-3051 / CVE-2023-30514)
Thycotic DevOps Secrets Vault 1.0.0 (SECURITY-3078 / CVE-2023-30515)
The following plugins have been updated to properly mask credentials in the build log when push mode for durable task logging is enabled:
Kubernetes 3910.ve59cec5e33ea_ (SECURITY-3079 / CVE-2023-30513)
Azure Key Vault 188.vf46b_7fa_846a_1 (SECURITY-3051 / CVE-2023-30514)
As of publication of this advisory, there is no fix available for the following plugin:
Thycotic DevOps Secrets Vault 1.0.0 (SECURITY-3078 / CVE-2023-30515)
An improvement in Credentials Binding 523.525.vb_72269281873 implements a workaround that applies build log masking even in affected plugins. This workaround is temporary and potentially incomplete, so it is still recommended that affected plugins be updated to resolve this issue. |
image-tag-parameter
Image Tag Parameter Plugin 2.0 improperly introduces an option to opt out of SSL/TLS certificate validation when connecting to Docker registries.
Job configurations using Image Tag Parameters that were created before 2.0 will have SSL/TLS certificate validation disabled by default.
As of publication of this advisory, there is no fix. Learn why we announce this.
neuvector-vulnerability-scanner
NeuVector Vulnerability Scanner Plugin 1.22 and earlier unconditionally disables SSL/TLS certificate and hostname validation when connecting to a configured NeuVector Vulnerability Scanner server.
As of publication of this advisory, there is no fix. Learn why we announce this.
thycotic-secret-server
Thycotic Secret Server Plugin 1.0.2 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.
quayio-trigger
Quay.io trigger Plugin provides a webhook endpoint at /quayio-webhook/
that can be used to trigger builds of jobs configured to use a specified repository.
In Quay.io trigger Plugin 0.1 and earlier, this endpoint can be accessed without authentication.
This allows unauthenticated attackers to trigger builds of jobs corresponding to the attacker-specified repository.
As of publication of this advisory, there is no fix. Learn why we announce this.
quayio-trigger
Quay.io trigger Plugin 0.1 and earlier does not limit URL schemes for repository homepage URLs submitted via Quay.io trigger webhooks.
This results in a stored cross-site scripting (XSS) vulnerability exploitable by attackers able to submit crafted Quay.io trigger webhook payloads.
As of publication of this advisory, there is no fix. Learn why we announce this.
assembla-merge-request-builder
Assembla merge request builder Plugin provides a webhook endpoint at /assembla-webhook/
that can be used to trigger builds of jobs configured to use a specified repository.
In Assembla merge request builder Plugin 1.1.13 and earlier, this endpoint can be accessed without authentication.
This allows unauthenticated attackers to trigger builds of jobs corresponding to the attacker-specified repository.
As of publication of this advisory, there is no fix. Learn why we announce this.
fogbugz
Fogbugz Plugin provides a webhook endpoint at /fbTrigger/
that can be used to trigger builds of any jobs.
In Fogbugz Plugin 2.2.17 and earlier, this endpoint can be accessed by attackers with Item/Read permission, allowing them to trigger builds of jobs specified in a jobname
request parameter.
As of publication of this advisory, there is no fix. Learn why we announce this.
reportportal
Report Portal Plugin 0.5 and earlier stores ReportPortal access tokens unencrypted in job config.xml
files on the Jenkins controller as part of its configuration.
These tokens can be viewed by users with Item/Extended Read permission or access to the Jenkins controller file system.
Additionally, the configuration form does not mask these tokens, increasing the potential for attackers to observe and capture them.
As of publication of this advisory, there is no fix. Learn why we announce this.
reportportal
Report Portal Plugin 0.5 and earlier does not perform a permission check in a method implementing form validation.
This allows attackers with Overall/Read permission to connect to an attacker-specified URL using attacker-specified bearer token authentication.
Additionally, this form validation method 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.
wso2id-oauth
WSO2 Oauth Plugin 1.0 and earlier stores the WSO2 Oauth client secret unencrypted in the global config.xml
file on the Jenkins controller as part of its configuration.
This client secret can be viewed by users with access to the Jenkins controller file system.
Additionally, the global configuration form does not mask the WSO2 Oauth client secret, increasing the potential for attackers to observe and capture it.
As of publication of this advisory, there is no fix. Learn why we announce this.
lucene-search
Lucene-Search Plugin 387.v938a_ecb_f7fe9 and earlier does not require POST requests for an HTTP endpoint, resulting in a cross-site request forgery (CSRF) vulnerability.
This vulnerability allows attackers to reindex the database.
As of publication of this advisory, there is no fix. Learn why we announce this.
consul-kv-builder
Consul KV Builder Plugin 2.0.13 and earlier stores the HashiCorp Consul ACL Token unencrypted in its global configuration file org.jenkinsci.plugins.consulkv.GlobalConsulConfig.xml
on the Jenkins controller as part of its configuration.
This token can be viewed by users with access to the Jenkins controller file system.
Additionally, the global configuration form does not mask the token, increasing the potential for attackers to observe and capture it.
As of publication of this advisory, there is no fix. Learn why we announce this.
spoonscript
TurboScript Plugin provides a webhook endpoint at /turbo-webhook/
that can be used to trigger builds of jobs configured to use a specified repository.
In TurboScript Plugin 1.3 and earlier, this endpoint can be accessed by attackers with Item/Read permission to trigger builds of jobs corresponding to the attacker-specified repository.
As of publication of this advisory, there is no fix. Learn why we announce this.
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:
Learn why we announce these issues.
The Jenkins project would like to thank the reporters for discovering and reporting these vulnerabilities: