Skip to content

Build Also reported elsewhere2 publishers 2 min read Published

GhostAction's secret-stealing workflows reached 30,000 repos through hijacked developer accounts, researchers say

GhostAction attackers used roughly 1,900 hijacked GitHub accounts to plant credential-stealing workflows in over 30,000 repos. No GitHub Actions flaw was involved, so defence means rotating exposed keys and reviewing who edits workflows.

The Engineer · Build desk

Send a correction

Illustration accompanying GhostAction's secret-stealing workflows reached 30,000 repos through hijacked developer accounts, researchers say
Generated illustration
Most earlier-wave workflow runs did not execute Malicious workflow runs GitGuardian recorded across 605 repositories in the August and September campaign, by stage reached.

Funnel of the August and September GhostAction campaign, per GitGuardian: 3,669 workflow runs recorded across 605 repositories, 499 of them executed, and 336 completed successfully.

Most earlier-wave workflow runs did not execute
StageValueClaim
Runs recorded3,669 workflow runs13
Runs executed499 workflow runs13
Completed successfully336 workflow runs13

What happened

  • The largest wave hit on October 8 and 9: GitGuardian says the attackers got into repositories owned by roughly 3,000 users and organizations and went after 3,174 secrets.
  • The malicious jobs targeted CI/CD secrets, cloud access keys and AI provider API keys.
  • The attackers disguised the workflows as standard security jobs, using file names such as security-audit.yml and github_actions_security.yml.
  • An earlier August and September wave put malicious workflows in 772 public repositories across 373 users and organizations, GitGuardian found.

Why it matters

  • Who's exposed exposure A key deleted from a repository months ago is still exposed if it was valid when the history scan ran, so rotation has to cover old commits as well as current code.
  • What it limits constraint Deleting the malicious workflow does not close an incident. An account that still has write access can push another one, so revoking its credentials is part of cleanup.
  • Who has to decide decision With no published total for stolen credentials, each team has to work out from its own audit records and run histories which secrets a malicious job could reach.

The injected files referenced secrets that legitimate builds already used. When the jobs ran, they could collect those credentials and send them to an attacker-controlled server [6].

How the attackers got the credentials is not settled. A StepSecurity analysis from October 9 names personal access tokens harvested from credential dumps as the most likely source, but the initial compromise has not been confirmed [21]. Rotating PATs covers that likely vector.

The 30,000 figure counts repositories reached [1]. GitGuardian wrote, "This payload was deployed in multiple phases," and described a push to about 160 previously targeted victims followed 20 minutes later by a deployment into 28,000 new repositories across October 8 and 9 [9][10].

The run-level numbers come from the earlier, smaller campaign. In August and September, 499 of 3,669 recorded workflow runs executed, about 14% [13][19]. Of those 499, 336 completed successfully, about 67% [20], and they exfiltrated 26 secrets from 13 repositories [13]. The source says GitHub's approval controls stopped most of the bad workflows [14]. For those ratios to transfer to October, the same gating would have to hold across the 28,000 new repositories [10].

Restricting CI secrets helps against the first variant and only partly against the second. The October variant went beyond the secrets workflows referenced. It pulled the full history with `actions/checkout@v4` and `fetch-depth: 0`, then searched both the current files and past commits for AWS keys, GitHub and GitLab personal access tokens, Google and Firebase keys, and Anthropic, OpenAI and OpenRouter API tokens [7]. Later versions also grabbed the lines around each match, so an AWS key ID could be matched up with its secret access key [8]. The source's remediation list covers revoking, rotating and auditing, with nothing on narrowing CI secrets. In our view, secret scoping narrows what a stolen token can read at run time, and a key already committed is out of its reach.

The cleanup record is thin. Attackers recycled 92 older workflows left behind from earlier attacks, including infrastructure active since September 2025 [14]. By October 5, only 124 of 772 affected repositories, 16%, had been cleaned up [15].

What to watch

  • A confirmed source for the stolen tokens. StepSecurity calls PATs from credential dumps the likely route, but the initial compromise is unconfirmed.
  • A GitGuardian count of distinct credentials that reached the attackers. Today the only October figure is the 3,174 secrets targeted.
  • Whether cleanup of the 772 affected repositories moves past 124, since attackers reused 92 older workflows.

Clarity's read

What the record supports and how the coverage leans. The claims behind it follow.

Reality

Evidence55
Adoption
Insufficient
Hype gap+8
Incentives
Insufficient
Confidence58
Why these scores

Claim ledger

Ranked by verification strength, evidence, and original report placement.

  1. [1]

    Hackers accessed roughly 1,900 GitHub accounts and used them to slip credential-stealing workflows into more than 30,000 repositories.

    Reported Supported Source: The New Stack, citing GitGuardian's tracking of the GhostAction campaignView cited source
  2. [2]

    The malicious GitHub Actions jobs targeted CI/CD secrets, cloud access keys, and AI provider API keys.

    Reported Supported Source: The New StackView cited source
  3. [3]

    GitGuardian tracked GhostAction as it intensified, with the biggest push on October 8 and 9, when the attackers reached repositories belonging to about 3,000 users and organizations and tried to extract 3,174 secrets.

    Reported Supported Source: GitGuardian, via The New StackView cited source

Get this ledger inside ChatGPT. Ask about any of our stories and the answer brings its figure, each claim’s verdict and the sources. Free, no account.

Add to ChatGPTAdd to Claude

Sources

2 independent publishers whose own reporting we read for this story.

  1. thehackernews.com

    1 article · October 15, 2026

    GhostAction Compromises About 1,900 GitHub Accounts, Targets Over 30,000 Repositories
  2. thenewstack.io

    1 article · October 15, 2026

    Hackers hijacked 1,900 GitHub accounts. Then they went after 30,000 repos.

Share your take

Let Clarity write the post for you.

Signed-in readers get a short post drafted on this story in the register they choose — narrative, analytical, or a direct position — editable to the last word before it goes anywhere. The share buttons at the top of this story work without an account.

Topics and entities

Follow any of these and your For You feed starts watching them — no settings page required.

Loading related stories