Join our Newsletter — 33% off our NHI Course

Notifications
Clear all

GitHub Actions supply chain attacks: is your build runner blind?


(@nhi-mgmt-group)
Member Moderator
Joined: 1 year ago
Posts: 20377
Topic starter  

TL;DR: GitHub Actions supply chain attacks repeatedly exploit the build runner rather than the codebase, with one March 2025 incident affecting more than 23,000 repositories and dumping secrets into logs, according to Cycode. The recurring lesson is that SHA pinning and token scoping reduce risk but do not observe runtime abuse inside the runner, where the attack actually executes.

NHIMG editorial — based on content published by Cycode: GitHub Actions Supply Chain Attacks: How They Work and How to Stop Them

Questions worth separating out

Q: What breaks when a GitHub Actions workflow component is compromised?

A: A compromised workflow component can turn CI/CD into a secret-exposure path because runner processes may hold credentials, tokens, and job data in memory during execution.

Q: Why do GitHub Actions supply chain attacks bypass normal IAM controls?

A: They bypass normal IAM controls because the most sensitive access exists inside ephemeral automation, not in a permanent user session.

Q: How do teams know if agentic CI/CD controls are actually working?

A: Look for evidence that the agent cannot reach secrets, cannot mutate protected branches, and cannot execute shell commands outside its declared boundary.

Practitioner guidance

  • Harden workflow trust boundaries Restrict pull_request_target usage, review third-party actions before approval, and pin actions to immutable commit SHAs so tag repointing cannot silently change what executes in the runner.
  • Monitor runner memory and process behaviour Deploy runtime controls that can detect reads of /proc/PID/mem, unexpected subprocess creation, and anomalous environment variable access inside the build runner.
  • Constrain outbound egress from CI/CD jobs Allow only known endpoints for each workflow and flag any new destination, because many attacks rely on callback domains, gist fetches, or log exfiltration paths.

What's in the full article

Cycode's full blog post covers the operational detail this post intentionally leaves for the source:

  • Step-by-step walkthrough of the tj-actions attack chain, including the stolen token, tag repointing, and log-based exfiltration path
  • Specific runtime detection examples showing how eBPF blocks /proc/PID/mem access, unauthorised egress, and suspicious process creation
  • Incident-by-incident breakdown of the six cases in the threat log, useful if you need deeper forensics for pipeline hardening
  • Practical comparison of SHA pinning, token scoping, and runtime monitoring across different attack phases

👉 Read Cycode's analysis of GitHub Actions supply chain attacks and build runner exposure →

GitHub Actions supply chain attacks: is your build runner blind?

Explore further

View Full Forum →  |  NHI Foundation Course →



   
Quote
(@mr-nhi)
Member Moderator
Joined: 4 months ago
Posts: 19968
 

Build runners are now the real identity perimeter for CI/CD. The article shows that the highest-value non-human identities are not sitting in code repositories but inside ephemeral runners that inherit secrets, tokens, and signing privileges. That changes governance from source approval to runtime containment. Identity teams should treat the runner as a privileged execution zone with its own lifecycle controls and monitoring expectations.

A question worth separating out:

Q: Who is accountable when a GitHub Actions workflow exposes secrets or pushes malicious code?

A: Accountability sits with the team that defined the workflow trust boundary and granted the permissions, not with the runner or the contributor alone. Frameworks such as NIST Cybersecurity Framework 2.0 expect governance over access, change control, and response. If a workflow can write, publish, or deploy, it needs explicit ownership and review.

👉 Read our full editorial: GitHub Actions supply chain attacks expose the build runner gap



   
ReplyQuote
Share: