The threat actor group TeamPCP, already linked to the Trivy supply chain compromise, has now poisoned two GitHub Actions workflows maintained by Checkmarx. This marks another escalation in their campaign to weaponize CI/CD pipelines by stealing credentials and secrets at scale.
What Happened
- Compromised workflows:
checkmarx/ast-github-actioncheckmarx/kics-github-action
- Attack vector: Credential stealer injected into trusted GitHub Actions via malicious commits.
- Exfiltration: Stolen data sent to
checkmarx[.]zoneas encrypted archives (tpcp.tar.gz). - Fallback mechanism: Creation of repos named
docs-tpcportpcp-docsusing stolen GITHUB_TOKENs to stage data if exfiltration fails.
The Stealer’s Capabilities
The TeamPCP Cloud stealer harvests:
- SSH keys, Git tokens, AWS, GCP, Azure, Kubernetes, Docker credentials
- Database secrets, VPN configs,
.envfiles - Cryptocurrency wallet data
- Slack and Discord webhook URLs
- CI/CD configurations and runner memory tokens
This enables cascading compromise: one poisoned action captures secrets that can be used to poison other actions across the ecosystem.
Escalation Beyond GitHub Actions
- Trojanized extensions: Malicious versions of
ast-resultsandcx-dev-assistpublished to Open VSX (VS Code Marketplace versions unaffected). - Persistence: On non‑CI systems, malware installs a systemd user service polling
checkmarx[.]zone/rawevery 50 minutes. - Deception: Typosquat domains mimic vendor names to disguise malicious traffic in CI/CD logs.
- Regional targeting: Malicious Kubernetes script wipes machines if locale matches Iranian time zone.
Defensive Recommendations
- Rotate all secrets: Tokens, cloud credentials, and CI/CD keys exposed during the affected window.
- Audit workflows: Look for references to
tpcp.tar.gz,checkmarx[.]zone, orscan.aquasecurity[.]org. - Search repos: Identify suspicious repos named
tpcp-docsordocs-tpcp. - Pin actions by commit SHA: Prevent force‑pushed tags from introducing malicious code.
- Monitor CI runner traffic: Block suspicious outbound connections.
- Restrict IMDS access: Use IMDSv2 to harden cloud runner containers.
Final Thought
TeamPCP’s campaign demonstrates how CI/CD pipelines are now prime targets for supply chain attackers. By poisoning trusted GitHub Actions, they bypass traditional code review and dependency scanning. For defenders, the lesson is clear: trust must be verified continuously, and secrets must be rotated aggressively to contain cascading compromise.
Leave a Reply