CVE-2024-28236

7.7 HIGH

📋 TL;DR

This vulnerability in Vela CI/CD framework allows pipeline authors to bypass secret masking by injecting secrets into plugin parameters, which can then be exposed in logs. It primarily affects users who restrict secrets with 'no commands' option, creating a false sense of security. The risk is that sensitive values can be unintentionally exposed during pipeline execution.

💻 Affected Systems

Products:
  • Vela CI/CD Framework
Versions: Versions before 0.23.2
Operating Systems: Linux
Default Config Vulnerable: ⚠️ Yes
Notes: Affects pipelines using variable substitution with parameters, image, or entrypoint fields. Requires pipeline authors to supply secrets to plugins that may log those parameters.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Sensitive secrets (API keys, credentials, tokens) are exposed in pipeline logs, potentially leading to unauthorized access to production systems, data breaches, or supply chain attacks.

🟠

Likely Case

Accidental exposure of secrets in build logs that could be accessed by unauthorized users or developers, potentially compromising associated services.

🟢

If Mitigated

With proper controls, secrets remain protected through masking, but there's still risk if plugins mishandle parameter values.

🌐 Internet-Facing: MEDIUM - While CI/CD systems are often internal, exposed logs or compromised plugins could lead to internet-accessible risks.
🏢 Internal Only: HIGH - Most CI/CD systems are internal, and this vulnerability directly impacts internal secret management and pipeline security.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires pipeline author access and specific plugin configurations that log parameters. Similar patterns are known in other CI/CD systems.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 0.23.2

Vendor Advisory: https://github.com/go-vela/worker/security/advisories/GHSA-pwx5-6wxg-px5h

Restart Required: Yes

Instructions:

1. Backup current Vela configuration. 2. Update Vela to version 0.23.2 or later using your package manager or deployment method. 3. Restart Vela services. 4. Verify the update was successful.

🔧 Temporary Workarounds

Avoid sensitive parameters in plugins

all

Do not pass sensitive values to plugin parameters that are not designed for secrets. Use secrets only in designated secret fields.

Review and restrict plugin logging

all

Audit plugins for parameter logging and modify or replace plugins that log sensitive parameter values.

🧯 If You Can't Patch

  • Do not provide sensitive values to plugins that can potentially expose them, especially in parameters fields
  • Minimize secrets with pull_request events enabled and use build approval settings to restrict untrusted users

🔍 How to Verify

Check if Vulnerable:

Check if Vela version is below 0.23.2 and review pipeline configurations for secrets passed to plugin parameters.

Check Version:

vela version

Verify Fix Applied:

Verify Vela version is 0.23.2 or later and test that secret masking works properly with parameter substitution.

📡 Detection & Monitoring

Log Indicators:

  • Unmasked secret values appearing in pipeline execution logs
  • Sensitive strings in parameter fields within build logs

Network Indicators:

  • Unusual external connections from CI/CD system following secret exposure

SIEM Query:

Search for patterns of sensitive strings (API keys, tokens) in CI/CD log files that should be masked.

🔗 References

📤 Share & Export