GhostAction Campaign Targets 346 Repositories to Steal CI/CD and Cloud Credentials

· Original article ↗

Summary

Socket found a GhostAction wave that injected malicious GitHub Actions workflows into 346 repositories, stealing Actions secrets and scanning current files and Git history for cloud and other credentials.

Key points

  • Two compromised maintainer accounts added a workflow named security-audit.yml to repositories they could write to, including an Uber-owned repository.
  • The workflow runs on pushes and can also be started manually; it sends collected data to 193.32.204[.]199.
  • It targets GitHub Actions secrets and scans working files and full repository history for 13 credential patterns, including AWS, AI service, source-control, and SaaS tokens.
  • Socket later identified more than 500 GitHub accounts that committed the workflow to tens of thousands of repositories; some were organization-owned.
  • The workflow ran successfully in affected repositories. Socket reported no malicious package releases on PyPI or crates.io as of publication.
  • Recommended response includes removing the workflow, revoking and rotating exposed credentials, reviewing workflow runs and audit logs, and checking package releases and AWS activity.

Article Details

Attack Vectors
  • Compromised maintainer credentials were used to commit a malicious workflow directly to repositories’ default branches.
  • The workflow ran on pushes to any branch or tag and could also be triggered manually; it collected GitHub Actions secrets and credentials found in working-tree files and repository history.
  • Collected data was sent in an HTTP POST to the hardcoded IP address 193.32.204[.]199.
Defensive Notes
  • Remove the malicious workflow and revert its commit from every affected repository, including organization-owned repositories and forks.
  • Treat completed workflow runs as successful exfiltration; rotate exposed credentials and revoke exposed personal access tokens.
  • Review full repository history, including branches, tags, and unreachable objects, for committed credentials; review AWS CloudTrail and IAM changes where AWS credentials may have been exposed.
  • Revoke account sessions, personal access tokens, OAuth grants, and SSH keys; enforce phishing-resistant MFA and review organization audit logs for unauthorized workflow additions.
  • Hunt for connections to 193.32.204[.]199 and block the address; enable GitHub secret scanning with push protection and require approval for workflow runs from outside collaborators.

Indicators of compromise

TypeIndicatorContext
IPV4193[.]32[.]204[.]199Identified by the article as the C2 IP address receiving stolen credentials.
URLhxxp[:]//193[.]32[.]204[.]199Hardcoded destination used by the malicious workflow to POST collected credentials.
URLhxxp[:]//193[.]32[.]204[.]199/?c=monamiSpecific hardcoded POST destination shown in the workflow for exfiltrating collected data.

MITRE ATT&CK

Vendors

Products

Industries

Related Articles