CVE-2024-28236 Vulnerability Analysis & Exploit Details

CVE-2024-28236
Vulnerability Scoring

7.7
/10
Very High Risk

Highly exploitable, CVE-2024-28236 poses a critical security risk that could lead to severe breaches.

Attack Complexity Details

  • Attack Complexity: Low
    Exploits can be performed without significant complexity or special conditions.
  • Attack Vector: Network
    Vulnerability is exploitable over a network without physical access.
  • Privileges Required: Low
    Some privileges are necessary to exploit the vulnerability.
  • Scope: Changed
    Successful exploitation can impact components beyond the vulnerable component.
  • User Interaction: None
    No user interaction is necessary for exploitation.

CVE-2024-28236 Details

Status: Analyzed

Last updated: 🕒 22 Jan 2025, 15:05 UTC
Originally published on: 🕘 12 Mar 2024, 21:15 UTC

Time between publication and last update: 315 days

CVSS Release: version 3

CVSS3 Source

security-advisories@github.com

CVSS3 Type

Secondary

CVSS3 Vector

CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N

CVE-2024-28236 Vulnerability Summary

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.

Assessing the Risk of CVE-2024-28236

Access Complexity Graph

The exploitability of CVE-2024-28236 depends on two key factors: attack complexity (the level of effort required to execute an exploit) and privileges required (the access level an attacker needs).

Exploitability Analysis for CVE-2024-28236

CVE-2024-28236 presents an accessible attack vector with minimal effort required. Restricting access controls and implementing security updates are critical to reducing exploitation risks.

Understanding AC and PR

A lower complexity and fewer privilege requirements make exploitation easier. Security teams should evaluate these aspects to determine the urgency of mitigation strategies, such as patch management and access control policies.

Attack Complexity (AC) measures the difficulty in executing an exploit. A high AC means that specific conditions must be met, making an attack more challenging, while a low AC means the vulnerability can be exploited with minimal effort.

Privileges Required (PR) determine the level of system access necessary for an attack. Vulnerabilities requiring no privileges are more accessible to attackers, whereas high privilege requirements limit exploitation to authorized users with elevated access.

CVSS Score Breakdown Chart

Above is the CVSS Sub-score Breakdown for CVE-2024-28236, illustrating how Base, Impact, and Exploitability factors combine to form the overall severity rating. A higher sub-score typically indicates a more severe or easier-to-exploit vulnerability.

CIA Impact Analysis

Below is the Impact Analysis for CVE-2024-28236, showing how Confidentiality, Integrity, and Availability might be affected if the vulnerability is exploited. Higher values usually signal greater potential damage.

  • Confidentiality: High
    Exploiting CVE-2024-28236 can result in unauthorized access to sensitive data, severely compromising data privacy.
  • Integrity: None
    CVE-2024-28236 poses no threat to data integrity.
  • Availability: None
    CVE-2024-28236 does not impact system availability.

Exploit Prediction Scoring System (EPSS)

The EPSS score estimates the probability that this vulnerability will be exploited in the near future.

EPSS Score: 0.052% (probability of exploit)

EPSS Percentile: 24.13% (lower percentile = lower relative risk)
This vulnerability is less risky than approximately 75.87% of others.

CVE-2024-28236 References

External References

CWE Common Weakness Enumeration

CWE-532

CAPEC Common Attack Pattern Enumeration and Classification

  • Fuzzing for application mapping CAPEC-215 An attacker sends random, malformed, or otherwise unexpected messages to a target application and observes the application's log or error messages returned. The attacker does not initially know how a target will respond to individual messages but by attempting a large number of message variants they may find a variant that trigger's desired behavior. In this attack, the purpose of the fuzzing is to observe the application's log and error messages, although fuzzing a target can also sometimes cause the target to enter an unstable state, causing a crash.

Vulnerable Configurations

  • cpe:2.3:a:go-vela:worker:-:*:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:-:*:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.1.0:*:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.1.0:*:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.1.1:*:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.1.1:*:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.1.2:*:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.1.2:*:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.1.4:*:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.1.4:*:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.1.5:*:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.1.5:*:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.2.0:-:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.2.0:-:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.2.0:rc1:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.2.0:rc1:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.2.0:rc2:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.2.0:rc2:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.2.0:rc3:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.2.0:rc3:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.2.1:*:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.2.1:*:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.3.0:-:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.3.0:-:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.3.0:rc1:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.3.0:rc1:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.3.0:rc2:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.3.0:rc2:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.3.0:rc3:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.3.0:rc3:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.3.0:rc4:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.3.0:rc4:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.3.0:rc5:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.3.0:rc5:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.3.1:*:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.3.1:*:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.4.0:-:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.4.0:-:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.4.0:rc1:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.4.0:rc1:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.4.0:rc2:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.4.0:rc2:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.4.0:rc3:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.4.0:rc3:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.4.1:*:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.4.1:*:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.4.2:*:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.4.2:*:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.4.3:*:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.4.3:*:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.5.0:-:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.5.0:-:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.5.0:rc1:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.5.0:rc1:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.5.0:rc2:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.5.0:rc2:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.5.0:rc3:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.5.0:rc3:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.5.1:*:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.5.1:*:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.5.2:*:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.5.2:*:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.6.0:-:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.6.0:-:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.6.0:rc1:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.6.0:rc1:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.6.0:rc2:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.6.0:rc2:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.7.0:-:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.7.0:-:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.7.0:rc1:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.7.0:rc1:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.7.0:rc2:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.7.0:rc2:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.7.0:rc3:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.7.0:rc3:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.7.2:*:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.7.2:*:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.7.3:*:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.7.3:*:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.7.4:*:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.7.4:*:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.7.5:*:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.7.5:*:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.8.0:-:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.8.0:-:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.8.0:rc1:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.8.0:rc1:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.8.0:rc2:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.8.0:rc2:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.8.1:*:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.8.1:*:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.9.0:-:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.9.0:-:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.9.0:rc2:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.9.0:rc2:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.9.0:rc3:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.9.0:rc3:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.10.0:-:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.10.0:-:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.10.0:rc1:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.10.0:rc1:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.10.0:rc2:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.10.0:rc2:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.10.0:rc3:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.10.0:rc3:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.10.1:*:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.10.1:*:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.11.0:-:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.11.0:-:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.11.0:rc1:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.11.0:rc1:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.11.0:rc2:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.11.0:rc2:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.11.0:rc3:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.11.0:rc3:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.12.0:-:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.12.0:-:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.12.0:rc1:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.12.0:rc1:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.12.0:rc2:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.12.0:rc2:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.12.1:*:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.12.1:*:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.12.2:*:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.12.2:*:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.13.0:-:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.13.0:-:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.13.0:rc1:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.13.0:rc1:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.13.0:rc2:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.13.0:rc2:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.13.1:*:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.13.1:*:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.13.2:*:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.13.2:*:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.14.0:-:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.14.0:-:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.14.0:rc1:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.14.0:rc1:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.14.0:rc2:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.14.0:rc2:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.14.0:rc3:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.14.0:rc3:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.15.0:-:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.15.0:-:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.15.0:rc1:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.15.0:rc1:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.15.0:rc2:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.15.0:rc2:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.15.1:*:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.15.1:*:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.16.0:*:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.16.0:*:*:*:*:*:*:*
  • cpe:2.3:a:go-vela:worker:0.16.1:*:*:*:*:*:*:*
    cpe:2.3:a:go-vela:worker:0.16.1:*:*:*:*:*:*:*

Protect Your Infrastructure against CVE-2024-28236: Combat Critical CVE Threats

Stay updated with real-time CVE vulnerabilities and take action to secure your systems. Enhance your cybersecurity posture with the latest threat intelligence and mitigation techniques. Develop the skills necessary to defend against CVEs and secure critical infrastructures. Join the top cybersecurity professionals safeguarding today's infrastructures.

Other 5 Recently Published CVEs Vulnerabilities

  • CVE-2025-27636 – Bypass/Injection vulnerability in Apache Camel. This issue affects Apache Camel: from 4.10.0 through <= 4.10.1, from 4.8.0 through <= 4.8.4, from ...
  • CVE-2025-2121 – A vulnerability classified as critical has been found in Thinkware Car Dashcam F800 Pro up to 20250226. Affected is an unknown function of the comp...
  • CVE-2025-2120 – A vulnerability was found in Thinkware Car Dashcam F800 Pro up to 20250226. It has been rated as problematic. This issue affects some unknown proce...
  • CVE-2025-2119 – A vulnerability was found in Thinkware Car Dashcam F800 Pro up to 20250226. It has been declared as problematic. This vulnerability affects unknown...
  • CVE-2025-2118 – A vulnerability was found in Quantico Tecnologia PRMV 6.48. It has been classified as critical. This affects an unknown part of the file /admin/log...