WWW
aquasecurity/trivy-action
aquasecurity/trivy-action
Docker Hub images
Docker Hub images
CI/CD pipeline
CI/CD pipeline
CI/CD secrets
CI/CD secrets
TeamPCP C2
TeamPCP C2
Vect ransomware (post)
Vect ransomware (post)
SCN-007 / Security Scanner Compromised → CI/CD Secret Stealer / 2026

Trivy / TeamPCP 2026

On Mar 19, 2026 at 17:43 UTC, the threat actor TeamPCP force-pushed 76 of 77 version tags in aquasecurity/trivy-action - and all 7 tags in aquasecurity/setup-trivy - to point at malicious commits. The poisoned entrypoint.sh ran a credential stealer BEFORE the legitimate Trivy scan, with pipelines appearing to work normally.
76/77
tags force-pushed
3-12 h
exposure window
TeamPCP
attributed actor
CVE-
no exploit (residual access)
TeamPCP · 76/77 tags pushed Mar 19
A trusted security scanner was turned into a credential stealer overnight - pipelines using @v0 instead of a SHA pulled malware and shipped AWS, GCP, Azure, and Kubernetes secrets to the attacker.
~700 GB / victim
Exposure
Vect ransomware listed Guesty + S&P Global + others; ~700 GB exfil per named victim, 1,000+ SaaS envs affected
76 of 77 tags
Time to detect
all trivy-action version tags force-pushed Mar 19 2026; advisory GHSA-69fq-xp46-6x23 Mar 21
Pin SHA-40
Fix complexity
every GitHub Actions reference pinned to full 40-char commit SHA, not @v0/@v1/@main
Ask your team this Friday
Run grep across all .github/workflows/*.yml - for every third-party action, is it pinned to a full SHA (40 hex chars) or a moving tag like @v1, @v0, or @main?
Audit my environment
TEXT
STEP 01 TeamPCP retains residual access from Feb 2026 incident
Aqua Security post-incident timeline
1# Per Aqua advisory GHSA-69fq-xp46-6x23 + Microsoft Security Blog (Mar 24 2026):
2Feb 2026 : Initial intrusion into Trivy release infrastructure
3Mar 1    : Credential rotation begun (incomplete)
4Mar 19   : TeamPCP leverages residual access for force-push attack
5
6# Threat actor profile (Wiz / Flare / The Hacker News):
7Actor   : TeamPCP (self-labelled)
8Tracking: threats.wiz.io/all-actors/teampcp
9Profile : Cloud-native theft + monetization
10          Worm-driven ransomware history
11          Cryptocurrency wallet targeting
12          ICP-hosted infrastructure
No CVE, no zero-day · the attack chain depends entirely on incomplete remediation of the February 2026 intrusion. Credential rotation that misses one machine identity = full re-entry.
1 / 7
← back
demo state
Export

Generate audit report

Self-contained snapshot of this scenario - step-by-step chain, fixes, ATT&CK mappings, threat actor context.
Click to highlight toxic edges
What if…
node label
Remove this node
Strip outgoing permissions
Reset to original R
REMOVING NODE - saves 0 nodes Esc · R
Right-click any node to test a fix
BREAK POINT
Cut this edge → -- nodes unreachable
Fix: --