Supply chain [SC] Supply Chain

TeamPCP Checkmarx KICS GitHub Actions Supply Chain Compromise

2026-03-21 [vendor] Checkmarx KICS (Keep Infrastructure as Code Secure); GitHub Actions [malware] TeamPCP Cloud Stealer
Primary Source ↗

Incident Details

On March 21, 2026, as the second step in its cascading supply chain campaign, TeamPCP used PATs stolen during the March 19 Trivy/Aqua Security GitHub Actions compromise to target Checkmarx KICS (Keep Infrastructure as Code Secure), a widely-used open-source infrastructure-as-code security scanner. The attackers force-pushed malicious commits to all 35 version tags of checkmarx/kics-github-action and poisoned version 2.3.28 of checkmarx/ast-github-action. The injected payload was TeamPCP’s three-stage Cloud Stealer, which subverted the official container entrypoint (setup.sh). The stealer exfiltrated credentials to the typosquat domain checkmarx[.]zone. As a failsafe, if primary C2 communications failed, the malware used the victim’s own GITHUB_TOKEN to create a hidden repository named ‘docs-tpcp’ within the victim’s GitHub organization to store stolen credentials. Any CI/CD pipeline using kics-github-action or ast-github-action during this window would have had its cloud credentials silently exfiltrated. Checkmarx published a security update and restored clean versions. Part of the TeamPCP multi-target campaign alongside Trivy (March 19), LiteLLM/PyPI (March 27), and Telnyx/PyPI (March 27).

Technical Details

Initial Attack Vector
TeamPCP used GitHub Personal Access Tokens (PATs) stolen during the Trivy compromise to force-push malicious commits to all 35 version tags of the checkmarx/kics-github-action repository and poison version 2.3.28 of checkmarx/ast-github-action
Vendor / Product
Checkmarx KICS (Keep Infrastructure as Code Secure); GitHub Actions
Software Package
kics-github-action, ast-github-action
Malware Family
TeamPCP Cloud Stealer
Supply Chain Attack
✅ Confirmed third-party / vendor compromise

Timeline

  1. 2026-03-21 Breach occurred
  2. 2026-03-21 Publicly disclosed