CVE-2024-28236
CVE-2024-28236 is a high-severity vulnerability in Go-vela Worker with a CVSS 3.x base score of 7.7. It is not currently listed as actively exploited by CISA, and its EPSS exploit-prediction score is low. The underlying weakness is classified as CWE-532.
Key facts
- Severity: High (CVSS 3.x base score 7.7)
- EPSS exploit prediction: 1% (49th percentile)
- Actively exploited: Not listed in CISA KEV
- EU (EUVD) id: EUVD-2024-0985
- Weakness: CWE-532
- Affected product: Go-vela Worker
- Published:
- Last modified:
Description
Vela is a Pipeline Automation (CI/CD) framework built on Linux container technology written in Golang. Vela pipelines can use variable substitution combined with insensitive fields like `parameters`, `image` and `entrypoint` to inject secrets into a plugin/image and — by using common substitution string manipulation — can bypass log masking and expose secrets without the use of the commands block. This unexpected behavior primarily impacts secrets restricted by the "no commands" option. This can lead to unintended use of the secret value, and increased risk of exposing the secret during image execution bypassing log masking. **To exploit this** the pipeline author must be supplying the secrets to a plugin that is designed in such a way that will print those parameters in logs. Plugin parameters are not designed for sensitive values and are often intentionally printed throughout execution for informational/debugging purposes. Parameters should therefore be treated as insensitive. While Vela provides secrets masking, secrets exposure is not entirely solved by the masking process. A docker image (plugin) can easily expose secrets if they are not handled properly, or altered in some way. There is a responsibility on the end-user to understand how values injected into a plugin are used. This is a risk that exists for many CICD systems (like GitHub Actions) that handle sensitive runtime variables. Rather, the greater risk is that users who restrict a secret to the "no commands" option and use image restriction can still have their secret value exposed via substitution tinkering, which turns the image and command restrictions into a false sense of security. This issue has been addressed in version 0.23.2. Users are advised to upgrade. Users unable to upgrade should not provide sensitive values to plugins that can potentially expose them, especially in `parameters` that are not intended to be used for sensitive values, ensure plugins (especially those that utilize shared secrets) follow best practices to avoid logging parameters that are expected to be sensitive, minimize secrets with `pull_request` events enabled, as this allows users to change pipeline configurations and pull in secrets to steps not typically part of the CI process, make use of the build approval setting, restricting builds from untrusted users, and limit use of shared secrets, as they are less restrictive to access by nature.
Frequently asked questions
- What is CVE-2024-28236?
- Vela is a Pipeline Automation (CI/CD) framework built on Linux container technology written in Golang. Vela pipelines can use variable substitution combined with insensitive fields like `parameters`, `image` and `entrypoint` to inject secrets into a plugin/image and — by using common substitution string manipulation — can bypass log masking and expose secrets without the use of the commands block. This unexpected behavior primarily impacts secrets restricted by the "no commands" option. This can lead to unintended use of the secret value, and increased risk of exposing the secret during image execution bypassing log masking. **To exploit this** the pipeline author must be supplying the secrets to a plugin that is designed in such a way that will print those parameters in logs. Plugin parameters are not designed for sensitive values and are often intentionally printed throughout execution for informational/debugging purposes. Parameters should therefore be treated as insensitive. While Vela provides secrets masking, secrets exposure is not entirely solved by the masking process. A docker image (plugin) can easily expose secrets if they are not handled properly, or altered in some way. There is a responsibility on the end-user to understand how values injected into a plugin are used. This is a risk that exists for many CICD systems (like GitHub Actions) that handle sensitive runtime variables. Rather, the greater risk is that users who restrict a secret to the "no commands" option and use image restriction can still have their secret value exposed via substitution tinkering, which turns the image and command restrictions into a false sense of security. This issue has been addressed in version 0.23.2. Users are advised to upgrade. Users unable to upgrade should not provide sensitive values to plugins that can potentially expose them, especially in `parameters` that are not intended to be used for sensitive values, ensure plugins (especially those that utilize shared secrets) follow best practices to avoid logging parameters that are expected to be sensitive, minimize secrets with `pull_request` events enabled, as this allows users to change pipeline configurations and pull in secrets to steps not typically part of the CI process, make use of the build approval setting, restricting builds from untrusted users, and limit use of shared secrets, as they are less restrictive to access by nature.
- How severe is CVE-2024-28236?
- CVE-2024-28236 has a CVSS 3.x base score of 7.7, rated high severity. It is exploitable over network with low attack complexity, requires low privileges and no user interaction. Impact on confidentiality is high, integrity none, and availability none.
- Is CVE-2024-28236 being actively exploited?
- It is not currently listed in CISA's KEV catalog. Its EPSS exploit-prediction score is 1% (49th percentile), an estimate of the probability of exploitation in the next 30 days.
- What products are affected by CVE-2024-28236?
- CVE-2024-28236 affects Go-vela Worker. See the affected-products list for the exact vulnerable versions.
- How do I fix CVE-2024-28236?
- Review the linked vendor and NVD advisories for patched versions and mitigations, then upgrade or apply the recommended workaround. Given its high severity, prioritise patching exposed systems.
- Does CVE-2024-28236 have an EU (EUVD) identifier?
- Yes. CVE-2024-28236 is tracked in the ENISA EU Vulnerability Database (EUVD) as EUVD-2024-0985.
- When was CVE-2024-28236 published?
- CVE-2024-28236 was published on 2024-03-12 and last updated on 2026-06-17.
References
- https://github.com/go-vela/worker/commit/e1572743b008e4fbce31ebb1dcd23bf6a1a30297
- https://github.com/go-vela/worker/security/advisories/GHSA-pwx5-6wxg-px5h
Affected products (1)
- cpe:2.3:a:go-vela:worker:*:*:*:*:*:*:*:*
More vulnerabilities in Go-vela Worker
- CVE-2022-39395 — Critical (CVSS 9.6): Vela is a Pipeline Automation (CI/CD) framework built on Linux container technology written in Golang. In Vela Server…
All CVEs affecting Go-vela Worker →
Other CWE-532 (Insertion of Sensitive Information into Log File) vulnerabilities
- CVE-2022-36407 — Critical (CVSS 9.9): Insertion of Sensitive Information into Log File vulnerability in Hitachi Virtual Storage Platform, Hitachi Virtual…
- CVE-2023-40029 — Critical (CVSS 9.9): Argo CD is a declarative continuous deployment for Kubernetes. Argo CD Cluster secrets might be managed declaratively…
- CVE-2021-32724 — Critical (CVSS 9.9): check-spelling is a github action which provides CI spell checking. In affected versions and for a repository with the…
- CVE-2026-49200 — Critical (CVSS 9.8): The acer_cgi.log file in the device firmware is accessible without authentication via the web interface. This file…
- CVE-2026-22778 — Critical (CVSS 9.8): vLLM is an inference and serving engine for large language models (LLMs). From 0.8.3 to before 0.14.1, when an invalid…
- CVE-2025-11008 — Critical (CVSS 9.8): The CE21 Suite plugin for WordPress is vulnerable to Sensitive Information Exposure in all versions up to, and…
Browse all CWE-532 (Insertion of Sensitive Information into Log File) vulnerabilities →