TL;DR: GitHub Actions attacks such as tj-actions, command injection in runner commands, and self-hosted runner abuse show how mutable dependencies, overprivileged tokens, and untrusted input can turn CI/CD into a secret-exposure path, according to Orca Security. The governance failure is not automation itself, but treating pipeline identities as if they were stable, reviewable, and low-risk.
Editorial analysis by NHI Mgmt Group, based on content published by Orca Security: “Part 2: Attackers Love Your GitHub Actions Too”.
By the numbers:
- Approximately 218 repositories exposed secrets during the tj-actions compromise window.
Key questions
Q: What breaks when GitHub Actions workflows use mutable dependencies and overprivileged tokens?
A: The reviewed workflow is no longer the executed workflow.
Q: Why do GitHub Actions workflows increase the risk of secret exposure?
A: Because workflows often run with access to repository tokens, cloud credentials, and runner state, a compromise can reveal more than code.
Q: What are the signs that a CI/CD pipeline is being compromised?
A: Common warning signs include sudden dependency changes, base64 encoded or packed code, unexpected outbound connections during builds, install scripts that run without a clear reason, and commits or approvals at unusual times.
Practitioner guidance
- Pin workflow dependencies to immutable SHAs Replace version tags with commit SHAs for all third-party actions so the reviewed code matches the executed code.
- Scope workflow tokens to the minimum required permissions Set GitHub_TOKEN to read-only by default, then grant write access only for the specific job and environment that needs it.
- Isolate self-hosted runners from sensitive resources Prefer ephemeral runners for public or secret-bearing workflows, and deny internal network reach from any runner that can process untrusted pull request content or third-party actions.
Bottom line: GitHub Actions attacks expose a governance gap where workflow identities are trusted like code but behave like access-bearing non-human identities.
Explore further
View Full Forum → | NHI Foundation Course → | Our Services → | Read the full analysis →
Pipeline identities are being governed as software components when they should be governed as access-bearing identities. A GitHub Actions workflow can read secrets, invoke tools, and alter downstream state, which makes it an identity subject, not just an automation script. The article shows that the real failure is lifecycle blindness: workflow trust was granted through tags, maintainer access, and runner persistence without identity-specific controls. The practical conclusion is that CI/CD must be treated as part of the identity estate, not as a separate engineering concern.
A few things that frame the scale:
- Systems with least-privileged AI access had a 17% incident rate vs 76% for over-privileged systems. Organisations failing to scope AI access properly are 4.5x more likely to experience a security incident, according to the 2026 Infrastructure Identity Survey.
- 92% of organisations expose NHIs to third parties, raising concerns about supply chain security, according to the Ultimate Guide to NHIs.
A question worth separating out:
Q: How should teams respond when a workflow dependency or runner is compromised?
A: Treat the workflow as a standing identity incident. Revoke tokens, rotate exposed secrets, pin or replace the affected dependency, inspect downstream repositories, and rebuild the affected runners or execution environment before resuming trusted automation.
👉 Read our full editorial: GitHub Actions supply chain attacks expose NHI governance gaps