On March 19, 2026, a threat actor identifying as TeamPCP compromised Aqua Security's trivy-action and setup-trivy GitHub Actions by force-pushing 76 release tags to point at malicious commits. The technique silently redirected version references to attacker-controlled code without any visible change on GitHub release pages. The injected entrypoint.sh runs credential theft in the background while the legitimate Trivy scanner completes normally, making the compromise difficult to detect through workflow output alone. On March 22, the attacker demonstrated continued access by publishing malicious Docker Hub images (v0.69.5, v0.69.6) and exposing internal Aqua repositories. As of March 23, Aqua has engaged Sygnia for forensic investigation and confirmed the incident is ongoing with evidence of reestablished access.
The initial foothold originated in late February 2026 when hackerbot-claw exploited a pull_request_target workflow misconfiguration to steal a privileged PAT. Credential rotation after that incident was not atomic, allowing the attacker to retain access. On March 19, the attacker used residual credentials to force-push 76 of 77 trivy-action tags and all 7 setup-trivy tags to malicious commits, simultaneously triggering a release of the backdoored Trivy v0.69.4 binary. On GitHub-hosted runners, a Base64-encoded Python script reads Runner.Worker process memory via /proc/{PID}/mem to extract CI/CD secrets. On self-hosted runners, the malware harvests SSH keys, cloud credentials (AWS, GCP, Azure), Kubernetes configs, Docker registry credentials, cryptocurrency wallets, and API keys from the filesystem. Collected data is encrypted with AES-256-CBC + RSA-4096 hybrid encryption, packaged as tpcp.tar.gz, and exfiltrated to the typosquatted domain scan.aquasecurtiy[.]org. If that fails, the malware uses the runner's GITHUB_TOKEN to create a public repository named tpcp-docs in the victim's org and uploads the bundle as a release asset. The compromised binary additionally writes a Python dropper (sysmon.py) for persistence, polling an ICP blockchain-hosted C2 for follow-on payloads. Stolen NPM publish tokens are being actively weaponized to propagate the CanisterWorm across the npm ecosystem.
The three attached detections cover two detection planes. On GitHub audit logs: the fallback exfiltration path (tpcp-named repo creation) and bot identities publishing releases (catches the exfil upload step regardless of repo name). On CrowdStrike Falcon: DNS resolution of the primary C2 domain scan.aquasecurtiy[.]org, the ICP blockchain fallback canister, and the Cloudflare Tunnel relay — catching the primary exfiltration path and secondary payload delivery on any managed endpoint. The 83 known-compromised commit SHAs are captured as IOCs on this briefing for reference but cannot be matched in GitHub audit log queries since the resolved action commit SHA is not exposed in the audit log schema.
IOCs (18)
Scan your environment for IOCs →DOMAIN 3
scan.aquasecurtiy.orgtdtqy-oyaaa-aaaae-af2dq-cai.raw.icp0.ioplug-tab-protective-relay.trycloudflare.comIP ADDRESS 1
45.148.10.212SHA256 FILE HASH 11
18a24f83e807479438dcab7a1804c51a00dafc1d526698a66e0640d1e5dd671a887e1f5b5b50162a60bd03b66269e0ae545d0aef0583c1c5b00972152ad7e073f7084b0229dce605ccc5506b14acd4d954a496da4b6134a294844ca8d601970d822dd269ec10459572dfaaefe163dae693c344249a0161953f0d5cdd110bd2a0bef7e2c5a92c4fa4af17791efc1e46311c0f304796f1172fce192f5efc40f5d7e64e152afe2c722d750f10259626f357cdea40420c5eedae37969fbf13abbecfecce7ae5ffc9f57bb70efd3ea136a2923f701334a8cd47d4fbf01a97fd22859cd5edd791021b966fb6af0ace09319ace7b97d6642363ef27b3d5056ca654a94ce6310d8a003d7ac101a6b1cd39ff6c6a88ee454b767c1bdce143e04bc11132436328a34b26a63423b555a61f89a6a0525a534e9c88584c815d937910f1ddd5380880819ef821cff918960a39c1c1aada55a5593c61c608ea9215da858a86e349FILE NAME 3
tpcp.tar.gzsysmon.pyentrypoint.shDetections
Enable detections →- GitHub Fallback Exfiltration via tpcp Repository and Release
- GitHub Bot Account Publishing Releases
- Detect data exfiltration to code repositories via automated commits or release uploads
- Detect tampered release artifacts, force-pushed tags, or unauthorized package publications in CI/CD
- Identify suspicious archive creation before potential exfiltration
- Alert on processes reading credential files, environment variables, or configuration stores
- Monitor for unauthorized access to SSH keys, certificates, and private key material
- Monitor for C2 communication over HTTP/HTTPS to uncommon or newly registered domains