Skip to content

Back to the catalog

10 Layers Deep: How StepSecurity Stops TeamPCP's Trivy Supply Chain Attack on GitHub Actions
stepsecurity.iowriteup

10 Layers Deep: How StepSecurity Stops TeamPCP's Trivy Supply Chain Attack on GitHub Actions

StepSecurity walks through the TeamPCP-led compromise of aquasecurity/trivy-action (CVE-2026-33634, CVSS 9.4), where attackers force-pushed a credential-stealing payload into 76 of 77 version tags, plus the related Checkmarx KICS action compromise, both harvesting secrets from /proc/pid/mem of the GitHub Actions Runner.Worker process and exfiltrating to a typosquatted domain (scan.aquasecurtiy.org, 45.148.10.212). The post details the attack technique of 'imposter commits' (fork commits reachable by SHA but not on any branch) used to hide the malicious tags, and situates the incident alongside the same-window CanisterWorm npm worm and TeamPCP credential stealers in litellm and telnyx PyPI packages, then maps ten StepSecurity/Harden-Runner defense-in-depth controls (egress blocking, process lockdown, SHA-pinning PRs, imposter-commit scanning, global blocklist) to each stage of the kill chain.

TL;DR Technical breakdown of TeamPCP's CVE-2026-33634 trivy-action tag-hijack/credential-theft supply-chain attack (plus the parallel Checkmarx KICS compromise) and the imposter-commit technique behind it, framed around StepSecurity's Harden-Runner defenses.

Organisations named here

  • 45.148.10.212
  • scan.aquasecurtiy.org

CVEs named here

  • CVE-2026-33634

Technologies named here

  • GitHub Actions
  • Trivy
  • Checkmarx
  • StepSecurity
  • Harden-Runner
  • LiteLLM
  • telnyx
  • tj-actions/changed-files

Techniques named here

  • Self-propagating npm worm supply chain attack
  • Credential stealer delivery via wheel file injection
  • Credential stealer delivery via WAV steganography

Threat actors named here

  • TeamPCP
  • CanisterWorm