
GhostAction Returns: Malicious “Security Audit” Workflows Now Mine Credentials from Entire Git Histories
StepSecurity details a new wave of the GhostAction campaign in which attackers used compromised maintainer accounts of Takashi Kitao (pyxel) and Henry Wu (athenadriver, Uber) to push malicious "Security Audit" GitHub Actions workflows to 345 repositories in minutes. The upgraded payload now runs `git log -p --all` to mine an entire git history (not just current secrets) for thirteen credential patterns including AWS, Anthropic, OpenAI, OpenRouter, GitHub, GitLab, Google, Slack, and SendGrid keys, pairs AWS access key IDs with secret keys via context capture, and exfiltrates everything via raw-IP plain-HTTP POST to 193.32.204.199, bypassing DNS-based defenses. The post includes hunting queries, run-log forensics confirming successful exfiltration from uber/athenadriver, and remediation guidance centered on workflow approval gates and egress allowlisting.
What it is
A new wave of the GhostAction GitHub Actions credential-theft campaign. On October 8, 2026, attackers using compromised maintainer accounts (kitao/pyxel, and henrywoo with write access to uber/athenadriver) committed a "Security Audit" workflow (security-audit.yml) straight to default branches. The earlier variant is named "Github Actions Security" (github_actions_security.yml). As of October 9, code search shows 378 repositories with a live malicious workflow, and henrywoo's 279 infected forks sit on top of that.
How it works
- The workflow triggers on
workflow_dispatchand any unfiltered push, and checks out withfetch-depth: 0. - It templates the repo's named
${{ secrets.* }}into the payload, based on prior reconnaissance of the workflow files. - It greps the working tree and
git log -p --allfor 13 credential patterns. A secret committed and deleted years ago is still harvested. - It captures ±2 lines around AWS key hits, delimited by
AKIA_CTX_START…AKIA_CTX_END, to pair key IDs with secret keys. - It POSTs everything over plain HTTP to
193.32.204.199. The?c=monamimarker means named secrets were found, and?c=newmeans none were. No DNS lookup occurs. - The
GITHUB_TOKENin the athenadriver run wascontents: read. Escalation depends on the stolen secrets.
Preconditions / Affected
Any repository where either workflow file appeared since August 31, 2026. The page says to treat that as a confirmed breach. The workflow beacons even when it finds nothing.
What to do
Search GitHub code (logged in, Code tab):
"AKIA_CTX_START" path:.github/workflows
"c=monami"
"193.32.204.199" path:.github/workflows
org:your-org "AKIA_CTX_START"
org:your-org "c=monami"
org:your-org "193.32.204.199"- Audit logs: look for maintainer commits adding these workflows directly to default branches without a PR,
workflow_dispatchon new "audit" workflows, and unsigned rapid-fire commits across many repos. - Rotate every credential ever committed to the repo, not just current Actions secrets. Registry and publishing tokens (PyPI, crates.io) are the priority.
- Require approval for workflow runs. In typecho-fans/plugins this stopped exfiltration: the runs stalled in
action_required. - Add an egress allowlist on runners. Raw-IP traffic evades domain-based controls.
- Protect
.github/workflows/*with branch protection so changes need PR review. - Harden-Runner users: filter telemetry since early September 2026 for destination
193.32.204.199on ports 80 and 3000.
Caveats
- Exfiltration is confirmed only in the uber/athenadriver run log, where the server replied
OKfour seconds after the run started. The pyxel workflow ran five times, all successful. - The AWS secret-key regex partly misfires because POSIX ERE rejects
(?:...), so it under-matches. The literal-prefix patterns work. - The 378, 182 and 88 counts are approximate and drift as victims clean up. Code search covers default branches only and excludes forks.
- No malicious package releases from stolen publishing credentials had been seen. The page says this is not evidence the credentials are safe.
- The account-compromise vector (a leaked PAT) is described as "most plausibly", not confirmed.
Organisations named here
- github_actions_security.yml
- Henry Wu
- security-audit.yml
- Takashi Kitao
Technologies named here
- GitHub Actions
- pyxel
- GitHub Code Search
- athenadriver
- typecho-fans/plugins
- curl
- git log -p --all
- henrywoo/pyllama
- henrywoo/chatllama
- Harden-Runner
- howie6879/liuli
- monkeyx-net/PortMaster-Build-Templates
- RSOLV-dev/rsolv-action
- StepSecurity
- AWS
- PyPI
- crates.io
- GitHub
- uber/athenadriver
- kitao/pyxel
Techniques named here
- Account compromise via leaked credentials
- Reconnaissance of named secrets
- Malicious workflow injection disguised as security tooling
- Secrets exfiltration via webhook/HTTP POST
- Full git history credential mining
- Working tree credential sweep
- AWS key pairing via context capture
- Raw-IP, plain-HTTP egress / DNS evasion
- In-band campaign telemetry via query parameters
- Manual workflow_dispatch re-triggering
- Re-triggering via empty/trivial commits
Threat actors named here
- GhostAction
- henrywoo
Also named here
- 193.32.204.199
- AKIA_CTX_START
Related in Supply Chain


