← Lab /Security & privacy

Gheist’s GitHub token abuse blocked in public repos, still works in private/enterprise

Security & privacy Attack · Real-world · Wiz Research

The claim

The authors assert that GitHub’s recent workflow hold effectively stops Gheist’s malicious runs in public repositories, but the campaign continues to exfiltrate secrets from private and enterprise repositories.

Hila Ramati · Wiz Research Writeup

Published as: “Gheist: Attempted Scaled Abuse of Stolen GitHub Tokens Stumbles”

So what

Organizations must assume that compromised GitHub tokens can still leak secrets from private repositories despite new GitHub defenses.

The five-minute version

Wiz tracked an automated campaign (Gheist) that injects a sync-check workflow into every repository a stolen GitHub token can reach, printing all repository secrets to the workflow log and downloading them via the GitHub API. They recovered over 13,500 malicious branches across more than 850 compromised accounts and observed two evolving tool variants. GitHub’s new approval-hold feature prevented the payload from running in public repositories, but it does not apply to private or Enterprise Server repos, where the attack still succeeds and even harvests cloud credentials. The evidence comes from real-world telemetry, audit logs, and cloud trail data, and the write-up includes detection and mitigation guidance.

What they found 3

What undercuts it the paper’s own results

Stated limits 3

What’s new here 4

Artifacts & methods 4

Topics

GitHub Actionsworkflow injectiontoken theftsecret exfiltrationself-hosted runnersOIDC role assumptionGitHub approval holdenterprise security
← Previous Microsoft’s new WESP driver lacks a way for user-mode EDR to block process creation