CVE-2024-45798

9.9 CRITICAL

📋 TL;DR

This CVE describes multiple Poisoned Pipeline Execution vulnerabilities in the arduino-esp32 GitHub Actions CI/CD workflow. Attackers could inject malicious code into the CI pipeline or manipulate environment variables, potentially compromising build artifacts. Users who download or use arduino-esp32 artifacts from affected CI/CD pipelines are at risk.

💻 Affected Systems

Products:
  • arduino-esp32
Versions: All versions using vulnerable GitHub Actions workflows before fixes were implemented
Operating Systems: Any OS running GitHub Actions workflows
Default Config Vulnerable: ⚠️ Yes
Notes: Specifically affects the tests_results.yml workflow and related CI/CD pipelines. The vulnerability is in the CI/CD infrastructure, not the arduino-esp32 firmware itself.

⚠️ Manual Verification Required

This CVE does not have specific version information in our database, so automatic vulnerability detection cannot determine if your system is affected.

Why? The CVE database entry doesn't specify which versions are vulnerable (no version ranges provided by the vendor/NVD).

🔒 Custom verification scripts are available for registered users. Sign up free to download automated test scripts.

Recommended Actions:
  1. Review the CVE details at NVD
  2. Check vendor security advisories for your specific version
  3. Test if the vulnerability is exploitable in your environment
  4. Consider updating to the latest version as a precaution

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete compromise of CI/CD infrastructure leading to supply chain attacks where malicious code is injected into official releases, affecting downstream users and devices.

🟠

Likely Case

Unauthorized code execution within GitHub Actions runners, potentially exposing secrets, modifying build artifacts, or disrupting development workflows.

🟢

If Mitigated

Limited impact with proper input validation and security controls in CI/CD pipelines, preventing injection attacks.

🌐 Internet-Facing: HIGH - GitHub Actions workflows are internet-accessible and process external inputs, making them prime targets for injection attacks.
🏢 Internal Only: MEDIUM - While primarily internet-facing, internal forks or mirrors could still be vulnerable if not properly updated.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Poisoned Pipeline Execution attacks are well-documented and relatively easy to execute against vulnerable GitHub Actions workflows. The advisory includes specific GHSL identifiers (GHSL-2024-169, GHSL-2024-170) indicating detailed research.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Addressed in commit(s) referenced in GHSA-h52q-xhg2-6jw8

Vendor Advisory: https://github.com/espressif/arduino-esp32/security/advisories/GHSA-h52q-xhg2-6jw8

Restart Required: No

Instructions:

1. Update to the latest arduino-esp32 repository version. 2. Verify that the .github/workflows/tests_results.yml file contains the security fixes. 3. Review and update any custom CI/CD workflows that may have similar vulnerabilities.

🔧 Temporary Workarounds

Disable vulnerable workflow

all

Temporarily disable the tests_results.yml workflow in GitHub Actions settings

Navigate to repository Settings > Actions > General > Workflow permissions > Disable workflow

Manual artifact verification

linux

Manually verify checksums and contents of all downloaded artifacts before use

sha256sum artifact.zip
unzip -l artifact.zip

🧯 If You Can't Patch

  • Implement strict input validation and sanitization in all CI/CD workflows
  • Use GitHub Actions security best practices: enable code scanning, require approvals for workflows, and limit permissions

🔍 How to Verify

Check if Vulnerable:

Check if your arduino-esp32 repository contains the vulnerable tests_results.yml workflow before security fixes were applied

Check Version:

git log --oneline -n 5 .github/workflows/tests_results.yml

Verify Fix Applied:

Verify that the tests_results.yml workflow includes proper input validation and no longer uses untrusted inputs in dangerous contexts

📡 Detection & Monitoring

Log Indicators:

  • Unexpected commands in GitHub Actions logs
  • Suspicious environment variable modifications
  • Unauthorized artifact modifications

Network Indicators:

  • Unusual outbound connections from GitHub Actions runners
  • Unexpected artifact downloads

SIEM Query:

source="github-actions" AND (command_injection OR env_injection OR suspicious_workflow)

🔗 References

📤 Share & Export