githash
docs
A long-running campaign that uses stolen developer credentials to commit a GitHub Actions workflow into the victim's repositories, under the victim's own identity. The workflow (usually .github/workflows/github_actions_security.yml, "Add Github Actions Security workflow") posts the repository's secrets, named one by one from a scrape of its existing workflows, to an attacker endpoint on every push. The first wave, in September 2025, hit about 900 repositories. A second wave from August 31 to September 30, 2026 hit 772 more, often re-editing the workflows left over from 2025 to point at a new endpoint. A September 2026 variant ships as security-check.yml and tags each injection with an id. On October 8, 2026 a security-audit.yml variant hit hundreds more repositories, including uber/athenadriver and kitao/pyxel, and also searched each repository's files and full git history for committed AWS, GitHub, GitLab, AI-provider and Slack keys. The same credentials have been reused for cryptomining.
references
- https://blog.gitguardian.com/ghostaction-github-actions-supply-chain-attack-returns/
- https://socket.dev/blog/ghostaction-cloud-credentials
spread over time
Press play to watch the threat spread, or drag the slider to pick dates.
known-malicious hashes · 1,189
| sha-256 | file names | repos | files | first seen | last seen |
|---|---|---|---|---|---|
| 81079ba0fd198c73… | fa-solid-400.woff2 |
5 | 5 | ||
| c47f7298752dc483… | github_actions_security.yml |
1 | 1 | ||
| a20213e93c1af85c… | ci-check.yml |
1 | 1 | ||
| e15f8cddee90d378… | security-audit.yml |
1 | 1 | ||
| 6d258db70677c99c… | security-audit.yml |
1,374 | 1,376 | ||
| f293f3d0baabcd09… | fa-solid-400.woff2 |
247 | 247 | ||
| 9cd5488efa74a675… | test-suite.yml |
36 | 36 | ||
| f8fee22b9070f61c… | audit.yml |
30 | 30 | ||
| 9e951b2d8f11aad3… | github_actions_security.yml |
1 | 1 | ||
| 9c3081c08ea15627… | github_actions_security.yml |
1 | 1 | ||
| a6db2324f4b4b487… | 3cb1889c-fb5c-4d90-b3f3-34d5bfc89942.yaml |
1 | 1 | ||
| e7719c55e02fa5b0… | repo-health.yml |
76 | 76 | ||
| 23cd41d30b1a8579… | build-check.yml |
14 | 14 | ||
| 0769ddb5457ac07b… | ci-check.yml |
77 | 77 | ||
| 8b242c7af2402aef… | fa-solid-400.woff2 |
16 | 16 | ||
| 242826ac9974d843… | build-check.yml |
8 | 8 | ||
| cb3842832267421b… | fa-solid-400.woff2 |
316 | 316 | ||
| b9ea5a0e645ff7c6… | security-audit.yml |
122 | 122 | ||
| 9d2b561ca281c835… | test-suite.yml build-check.yml code-review.yml +4 moreci-check.yml repo-health.yml audit.yml lint.yml |
41 | 41 | ||
| 1a1ceb064c498b3e… | fa-solid-400.woff2 |
87 | 87 | ||
| bd3a5eac8a0dad27… | audit.yml ci-check.yml code-review.yml +4 morerepo-health.yml build-check.yml test-suite.yml lint.yml |
44 | 44 | ||
| 8a2e332ba1ae7848… | ci-check.yml |
30 | 30 | ||
| 02517c9cfa8adc08… | repo-health.yml test-suite.yml audit.yml +4 moreci-check.yml lint.yml build-check.yml code-review.yml |
50 | 50 | ||
| d301438d713006a7… | security-audit.yml |
378 | 378 | ||
| f3c28a025ec1f300… | audit.yml |
71 | 71 |