CVE-2026-25598
📋 TL;DR
Harden-Runner GitHub Action versions before 2.14.2 fail to log outbound network connections using sendto, sendmsg, and sendmmsg system calls when configured with egress-policy: audit. This allows unauthorized network traffic to bypass security monitoring in CI/CD pipelines. Organizations using Harden-Runner Community Tier for GitHub Actions security are affected.
💻 Affected Systems
- Harden-Runner GitHub Action (Community Tier)
📦 What is this software?
Harden Runner by Stepsecurity
⚠️ Risk & Real-World Impact
Worst Case
Attackers could exfiltrate sensitive data, establish command-and-control channels, or pivot to internal networks without detection, compromising the entire CI/CD pipeline and potentially production systems.
Likely Case
Unauthorized data exfiltration or communication with external malicious servers goes undetected, allowing credential theft, intellectual property theft, or supply chain attacks.
If Mitigated
With proper network segmentation and additional monitoring layers, impact is limited to potential data leakage from the specific runner instance.
🎯 Exploit Status
Exploitation requires ability to execute arbitrary code on GitHub Actions runners, which typically requires repository write access or compromised credentials.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 2.14.2
Vendor Advisory: https://github.com/step-security/harden-runner/security/advisories/GHSA-cpmj-h4f6-r6pq
Restart Required: No
Instructions:
1. Update your GitHub Actions workflow YAML file to use step-security/harden-runner@v2.14.2 or later. 2. Replace any references to older versions with v2.14.2+. 3. Commit and push the changes to trigger updated workflows.
🔧 Temporary Workarounds
Change egress policy to block
allSwitch from audit mode to block mode to prevent unauthorized outbound connections entirely
Change 'egress-policy: audit' to 'egress-policy: block' in your workflow YAML
Use allow-list mode
allConfigure specific allowed domains instead of audit mode
Set 'egress-policy: allow' and configure 'allowed-endpoints' with specific domains
🧯 If You Can't Patch
- Implement network-level egress controls using GitHub Actions network policies or VPC restrictions
- Add additional monitoring using GitHub Actions audit logs and third-party security tools
🔍 How to Verify
Check if Vulnerable:
Check your GitHub Actions workflow YAML files for 'uses: step-security/harden-runner@' with version lower than v2.14.2 and 'egress-policy: audit' configuration.
Check Version:
grep -r 'step-security/harden-runner@' .github/workflows/
Verify Fix Applied:
Verify workflow YAML uses step-security/harden-runner@v2.14.2 or later and test with known outbound connections to confirm logging works.
📡 Detection & Monitoring
Log Indicators:
- Missing expected outbound connection logs in Harden-Runner audit output
- Unexpected successful outbound connections without corresponding audit entries
Network Indicators:
- Outbound connections from GitHub Actions runners to unexpected destinations
- Traffic patterns inconsistent with workflow requirements
SIEM Query:
source="github-actions" AND NOT (process="harden-runner" AND event_type="egress_audit") AND dest_ip NOT IN (allowed_ips)