Over 1,000 organizations compromised, potential for 10,000
A sophisticated and widespread supply chain attack, attributed to the threat actor group TeamPCP, has compromised multiple open-source projects, including Aqua Security's Trivy scanner, Checkmarx KICS, and the LiteLLM Python library. The attack, which began on March 19, 2026, leveraged a stolen GitHub Personal Access Token (PAT) to poison CI/CD pipelines through a technique known as tag poisoning. The attackers replaced legitimate software releases with malicious versions containing an infostealer payload designed to harvest credentials from development environments. The campaign, assigned CVE-2026-33634, has already impacted over 1,000 SaaS environments, with potential downstream effects for thousands more. The incident underscores the critical vulnerability of automated software delivery pipelines and the cascading impact of a single compromised credential.
The campaign was initiated by TeamPCP, a group known for aggressive tactics and collaboration with extortion groups like Lapsus$. The attack's root cause was an incompletely remediated security incident from February 2026, where a bot stole a GitHub PAT. Despite a credential rotation on March 1, the attackers retained residual access.
On March 19, TeamPCP used this access to execute a multi-pronged attack:
aquasecurity/trivy-action repository and 7 in aquasecurity/setup-trivy. This redirected CI/CD pipelines using these trusted version tags to malicious commits, causing them to execute attacker-controlled code.v0.69.4) was published via official GitHub Releases and container registries.1.82.7 and 1.82.8).The injected payload was a potent infostealer that harvested environment variables, SSH keys, cloud credentials (AWS, GCP, Azure), Kubernetes tokens, and cryptocurrency wallets from CI/CD runners. Stolen data was exfiltrated to the attacker-controlled domain scan.aquasecurtiy[.]org.
The attack demonstrates a deep understanding of modern development practices and CI/CD vulnerabilities. The core TTPs map to several MITRE ATT&CK techniques.
scan.aquasecurtiy[.]org or, as a fallback, uploaded as a release file to a newly created public GitHub repository within the victim's own account.The use of tag poisoning is particularly insidious. Many CI/CD pipelines are configured to pull specific version tags (e.g.,
v1) for stability. By force-pushing and overwriting these tags, the attackers ensured their malicious code was automatically pulled and executed by thousands of downstream systems without any change to the victim's pipeline configuration.
The business impact of this attack is severe and multi-faceted. Mandiant reports over 1,000 SaaS environments are already confirmed compromised, with a potential for 10,000 victims. The impact includes:
| Type | Value | Description |
|---|---|---|
| domain | scan.aquasecurtiy[.]org |
C2 and data exfiltration domain. Note the misspelling of 'security'. |
| domain | models.litellm[.]cloud |
Infrastructure related to the LiteLLM compromise. |
| other | tpcp-docs GitHub repos |
Repositories used by the threat actor for hosting malicious code or tools. |
| Type | Value | Description | Context |
|---|---|---|---|
url_pattern |
aquasecurity/trivy-action |
Monitor CI/CD logs for pulls of this GitHub Action, especially if versions were not explicitly pinned to a commit hash. | GitHub Actions logs, CI/CD pipeline execution logs. |
url_pattern |
aquasecurity/setup-trivy |
Monitor CI/CD logs for pulls of this GitHub Action. | GitHub Actions logs, CI/CD pipeline execution logs. |
file_name |
proxy_server.py |
For LiteLLM users, check for modifications to this file, especially in versions 1.82.7 and 1.82.8. | File Integrity Monitoring (FIM), source code repository history. |
network_traffic_pattern |
Egress traffic from CI/CD runners to non-standard domains. | Attackers exfiltrated data to scan.aquasecurtiy[.]org. Hunt for any unusual outbound connections from build agents. |
VPC flow logs, firewall logs, network monitoring tools. |
command_line_pattern |
git push --force |
Monitor for force pushes to protected branches or tags in critical repositories. | Git server audit logs, GitHub Enterprise audit logs. |
api_endpoint |
api.github.com/repos/{org}/{repo}/releases with POST method. |
Monitor for CI/CD processes creating new public repositories and uploading release assets, a fallback C2 method. | GitHub audit logs, CloudTrail for API calls from build agents. |
Security teams must act immediately. Assume compromise if your organization uses Trivy, Checkmarx, or LiteLLM in automated CI/CD pipelines.
trivy-action, setup-trivy, LiteLLM versions 1.82.7/1.82.8).scan.aquasecurtiy[.]org or any other suspicious outbound traffic from build runners dating back to March 19, 2026.For detection, D3-NTA: Network Traffic Analysis is critical. Egress traffic from CI/CD environments should be heavily restricted and monitored. Any connection to a new or uncategorized domain should be an immediate red flag.
This attack highlights critical gaps in modern software development security. Long-term mitigation requires a strategic shift.
v1, latest). Pin all third-party dependencies, including GitHub Actions and container images, to their immutable commit SHA or image digest. This prevents tag poisoning.scan.aquasecurtiy[.]org.Cisco confirmed as victim of Trivy supply chain attack, leading to source code and AWS key theft from internal development environments.
Verifying the signatures of software dependencies can help detect tampering, although this attack also compromised the release process itself.
While updating is crucial, this incident shows that updates must be verified. Pinning dependencies to immutable hashes is a more robust approach than using mutable tags.
Implement comprehensive auditing of CI/CD pipelines, GitHub actions, and network egress from build environments to detect anomalous behavior.
Apply strict egress filtering on CI/CD runners to block connections to unauthorized domains, which would have prevented data exfiltration.
Regularly audit and rotate high-privilege credentials like PATs. Use short-lived, dynamically-generated tokens instead of static PATs where possible.
Enforce MFA on all developer and service accounts to prevent takeover via single-factor credential theft.
In the context of the Trivy supply chain attack, implementing strict outbound traffic filtering on all CI/CD runners is the most critical defense. The attackers' primary method of data exfiltration relied on the build agent's ability to connect to an external, attacker-controlled domain (scan.aquasecurtiy[.]org). A default-deny egress policy should be enforced on the network level for all build environments. Create an explicit allowlist of required domains, such as *.github.com, pypi.org, and other necessary package registries. Any attempt by a build process to connect to a domain not on this list should be blocked and trigger a high-severity alert. This single control would have rendered the infostealer's primary exfiltration channel useless, significantly mitigating the impact of the compromise. For environments in AWS, this can be implemented using NACLs and Security Groups combined with a NAT Gateway and a proxy that filters based on a domain allowlist.
This attack weaponized the software update process itself through tag poisoning. To counter this, organizations must evolve their update strategy. Instead of relying on mutable version tags like v1 or latest in CI/CD configurations, all dependencies (GitHub Actions, Docker images, software packages) must be pinned to immutable identifiers. For GitHub Actions, this means using the full commit SHA. For Docker images, use the image digest (SHA256 hash). This ensures that the build process always pulls the exact, verified version of the dependency, making it immune to tag poisoning where the underlying code pointed to by the tag is changed. This practice should be enforced via policy-as-code (e.g., OPA Gatekeeper) to scan CI/CD configurations and block any builds that use mutable tags.
The attack was initiated with a compromised GitHub PAT. Organizations must treat service accounts and PATs as high-value assets and monitor their usage for anomalies. For GitHub, this involves ingesting audit logs into a SIEM and creating alerts for suspicious activities. Key events to monitor include: a PAT being used from an unexpected IP address or geographic location; a PAT being used to perform sensitive actions like force-pushing to a protected branch or changing repository settings; or a PAT showing an unusual frequency of API calls. The fallback C2 method involved creating a new public repository, which is a highly anomalous action for an automated build process and should trigger an immediate alert. By baselining normal PAT activity, security teams can detect deviations that indicate a compromise.

Cybersecurity professional with over 10 years of specialized experience in security operations, threat intelligence, incident response, and security automation. Expertise spans SOAR/XSOAR orchestration, threat intelligence platforms, SIEM/UEBA analytics, and building cyber fusion centers. Background includes technical enablement, solution architecture for enterprise and government clients, and implementing security automation workflows across IR, TIP, and SOC use cases.
Help others stay informed about cybersecurity threats