Pwning the CI (with GitHub Action Workflows)
summary
A public repo (example: Checkov) accepts a malicious PR that replaces workflows and runs attacker code on self-hosted runners, exfiltrates environment variables and secrets by echo secrets to a file and curl to webhook.site, sleeps to keep the ephemeral GitHub token alive, and spawns a Docker reverse shell to escalate to root. Thousands of repos show unsanitized inputs and permissive workflow defaults; fixes include branch protection, short-lived OIDC tokens, and automated scans.
AI-written summary · about
chapters (13)
- 0:00Introduction
- 1:23Malicious pull request
- 3:49Flaws in GitHub Actions
- 7:00Unsanitized inputs exploit
- 10:31Protecting against environment variable leaks
- 11:54Branch protection rules
- 14:21Extracting secrets
- 16:27Reverse shell attack
- 19:46Root on self-hosted
- 21:35PyTorch abuse by M. Young
- 23:42Prevention strategies
- 25:26Security tools
- 26:50Q&A
related talks
35mPwning the CI (GitHub Actions Edition)
23mBreaking the Build: How Attackers Abuse GitHub Actions
42mProtecting CI/CD from malicious deploys
55mBeyond the Commit: Weaponizing and Hardening GitHub Actions
52mGitHub Actions Security: From CI Nightmare to Supply Chain Sentinel
57mGitHub Actions: Vulnerabilities, Attacks, and Counter-measures
36mGithub Actions Security Landscape
32mHacker Traction Through GitHub Actions: Is Your (Open Source) Project Safe?
