Trivy Supply-Chain Breach Delivered Credential Stealer Through GitHub Actions

· Original article ↗

Summary

Aqua Security confirmed attackers used compromised credentials to trojanize Trivy v0.69.4 and trivy-action tags, stealing secrets. Researchers link the activity to TeamPCP and report a follow-up CanisterWorm npm campaign. Users were urged to rotate credentials.

Key points

  • Attackers published a trojanized Trivy v0.69.4 release and altered 75 of 76 trivy-action tags; affected workflows could run malicious code before legitimate scans.
  • The infostealer collected SSH keys, cloud and CI/CD credentials, environment files, TLS keys, and other secrets, including secrets found in GitHub Actions runner memory.
  • Stolen data was sent to a typosquatted server at scan.aquasecurtiy[.]org or, if that failed, uploaded to a public GitHub repository created in the victim's account.
  • The malware installed a Python payload as a systemd user service for persistence. Aqua Security said the attackers reused credentials from an earlier incident that had not been fully contained.
  • The malicious Trivy release was available for about three hours; compromised GitHub Actions tags remained active for up to 12 hours.
  • Researchers linked the follow-up CanisterWorm campaign to TeamPCP. The npm-targeting worm uses stolen tokens to publish malicious package updates and ICP canisters for command and control.
  • Organizations that used affected versions were advised to rotate secrets and investigate systems for further compromise.

Article Details

Victim Organization
Aqua Security
Incident Type
Supply-chain compromise that distributed credential-stealing malware through a trojanized Trivy release and GitHub Actions; a reported follow-up campaign spread a self-propagating npm worm.
Data Types Exposed
  • Credentials and authentication secrets
  • SSH keys
  • Cloud and infrastructure credentials
  • CI/CD credentials and tokens
  • Environment variables and .env files
  • Database credentials
  • TLS private keys
  • VPN configurations
  • Slack and Discord webhook tokens
  • Shell history
  • System files and authentication logs
  • Cryptocurrency wallet data
  • System and network reconnaissance data
Operational Impact
The Trivy v0.69.4 release was reportedly available for about three hours, and compromised trivy-action tags remained active for up to 12 hours. Attackers force-pushed 75 of 76 tags, causing workflows using affected tags to run malicious code. The malware collected secrets and attempted exfiltration; it could also establish persistence. Researchers linked a follow-up campaign to a worm that published malicious npm package updates, with Aikido reporting 28 packages published in under 60 seconds.
Claim Status
confirmed

Indicators of compromise

TypeIndicatorContext
DOMAINscan[.]aquasecurtiy[.]orgTyposquatted command-and-control server used by the infostealer to exfiltrate collected data.

MITRE ATT&CK

People

Threat Actors

Malware

Vendors

Products

Related Articles