CVE-2025-32955

6.0 MEDIUM

📋 TL;DR

CVE-2025-32955 is a privilege escalation vulnerability in Harden-Runner CI/CD security agent that allows attackers to bypass the 'disable-sudo' policy restriction. Attackers can use Docker group membership to launch privileged containers or access the host filesystem, effectively regaining root access. This affects organizations using Harden-Runner versions 0.12.0 through 2.11.0 in their GitHub Actions workflows.

💻 Affected Systems

Products:
  • Harden-Runner
Versions: 0.12.0 to 2.11.0
Operating Systems: Linux
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects systems where Harden-Runner is configured with 'disable-sudo' policy and the runner user belongs to the docker group.

⚠️ 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 the GitHub Actions runner with root access, allowing attackers to execute arbitrary commands, steal secrets, modify source code, and pivot to other systems in the CI/CD pipeline.

🟠

Likely Case

Privilege escalation from restricted runner user to root, enabling unauthorized system modifications, credential theft, and persistence in the CI/CD environment.

🟢

If Mitigated

Limited impact if Docker group access is restricted and proper container security controls are implemented alongside Harden-Runner.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: HIGH

🎯 Exploit Status

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

Exploitation requires access to the GitHub Actions runner as the runner user. The technique is well-documented and similar to known Docker privilege escalation methods.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2.12.0

Vendor Advisory: https://github.com/step-security/harden-runner/security/advisories/GHSA-mxr3-8whj-j74r

Restart Required: Yes

Instructions:

1. Update Harden-Runner to version 2.12.0 or later. 2. Restart GitHub Actions runners. 3. Verify the update by checking the version in runner logs or configuration.

🔧 Temporary Workarounds

Remove runner user from docker group

linux

Remove the GitHub Actions runner user from the docker group to prevent Docker-based privilege escalation.

sudo deluser <runner-user> docker
sudo systemctl restart docker

Implement Docker socket proxy

linux

Use Docker socket proxy to restrict Docker API access instead of direct docker group membership.

🧯 If You Can't Patch

  • Remove the runner user from the docker group and implement alternative container management methods.
  • Implement strict network controls and monitoring for Docker API calls from GitHub Actions runners.

🔍 How to Verify

Check if Vulnerable:

Check Harden-Runner version and verify if runner user is in docker group: 'id <runner-user>' and look for 'docker' group membership.

Check Version:

Check Harden-Runner configuration or logs for version information, typically in /etc/harden-runner/ or runner logs.

Verify Fix Applied:

Verify Harden-Runner version is 2.12.0 or later and test that 'disable-sudo' policy cannot be bypassed via Docker commands.

📡 Detection & Monitoring

Log Indicators:

  • Docker API calls from GitHub Actions runner user
  • Privileged container creation by runner user
  • sudoers file modification attempts

Network Indicators:

  • Docker API traffic from CI/CD runners to Docker daemon

SIEM Query:

source="github-actions" AND (process="docker" OR command="docker run --privileged")

🔗 References

📤 Share & Export