TeamPCP Supply Chain Campaign
A multi-week, multi-ecosystem attack chain spanning GitHub Actions, Docker Hub, npm, PyPI, OpenVSX, VS Code Marketplace, and Jenkins. Impacted so far: Aqua's Trivy, Checkmarx KICS, LiteLLM, Bitwarden, TanStack, Mistral AI, AntV (323 packages), Microsoft DurableTask, GitHub (~3,800 internal repos), Red Hat Cloud Services (32 packages), +more.
Payload Repositories
- litellm_1.82.8 — 3-stage payload w/ RSA-4096 key
- litellm_1.82.7 — RC4 obfuscation variants
- telnyx_4.87.1 — WAV steganography delivery
- MalwareBazaar — Community samples + YARA
TeamPCP
aka Altered Spider (CrowdStrike), SHADOW-WATER-058, UNC6780 (GTIG), PCPcat, Persy_PCP, ShellForce, CipherForce, DeadCatx3
Hybrid threat actor functioning as botnet, access broker, data-leak crew, and cloud exploitation group. Emerged late 2025. Brokers access to LAPSUS$, UNC6240/ShinyHunters, and Vect Ransomware.
Known Members
- Ruben Thomson (21, Perth) — aliases Ellis, @pcpcats, Deadcatx3. Arrested Aug 2026.
- Louis Gaebler (23, Perth) — alias @pcpcasper. Arrested Aug 2026.
External Analysis
- Flare.io — Dec 2025 worm campaign targeting cloud infrastructure
- Beelzebub — Next.js exploit campaign, 59K compromises in 33 hours
- Ransomware Interviews — "T" interview with TeamPCP member
xpl0itrs
Self-described TeamPCP affiliate
Data breach marketplace operator claiming responsibility for breaches of automotive manufacturers, payment processors, and cybersecurity firms. Self-describes as "close friend" of TeamPCP. Connected to Vect collective. Ideology: "no like government, like money, like freedom."
Contact IOCs
qtox_xpl0itrs— qTox handle05c8ae06e40a63cfd94d3307a3461ca668aa88bb18686083d6927e969249501075— Session ID
Vect Ransomware
Ransomware collective
Ransomware operation described as "collective of operators operating separate to TeamPCP & xpl0itrs." TeamPCP announced partnership in March 2026.
Supply chain campaigns that share TTPs with TeamPCP but lack clean attribution. These may represent: copycat actors, shared tooling ecosystems, or unconfirmed TeamPCP operations.
Post-Compromise Analysis
Deep-dive research into TeamPCP's post-compromise activity—what happens after credentials are stolen from supply chain attacks.
Tracking TeamPCP: Investigating Post-Compromise Attacks Seen in the Wild
Analysis of how TeamPCP operationalizes stolen credentials from supply chain compromises (Trivy, KICS, LiteLLM, Telnyx) to compromise cloud environments.
Attack Stages
- Secret Validation — TruffleHog validates stolen AWS keys, Azure secrets, and SaaS tokens via live API calls
- Internal Discovery — Within 24 hours: IAM enumeration (users, roles, policies), compute (EC2, Lambda), storage (S3, RDS), and container infrastructure (ECS task definitions, cluster mapping)
- Code Execution — GitHub workflow abuse via stolen PATs; Nord Stream tool for malicious workflow creation; ECS Exec with SSM Agent for container access; workflow log deletion
- Data Exfiltration — Bulk repository cloning via git.clone; mass extraction from S3, Secrets Manager, and databases
Tools & Infrastructure
TruffleHog— Credential validationNord Stream— GitHub automationBoto3— AWS API interactions- Mullvad VPN & InterServer hosting for obfuscation
Detection Signals
Unusual enumeration (ListUsers, DescribeInstances), unexpected secret access patterns, mass clone operations, workflow log deletion, API calls from VPN providers.
Investigating Two Variants of the Trivy Supply Chain Compromise
Incident response analysis documenting attacker activity after stolen AWS credentials were used—from validation through enumeration to potential exfiltration.
Attack Stages
- Credential Validation — Stolen AWS keys validated via TruffleHog; first attacker IP appears directly in CloudTrail with TruffleHog user agent
- Cloud Enumeration — Second IP (Kali Linux) performed systematic Boto3 enumeration across all 29 AWS regions: IAM users/roles, Lambda functions, DynamoDB tables, CloudFormation stacks, S3 buckets
- S3 Reconnaissance — Scanned 24 S3 buckets including 9 Terraform state buckets; victim lacked S3 data event logging (critical blindspot). Analysis revealed 5 RSA private keys in cleartext used for JWT signing
- No Persistence Established — Despite
iam:*permissions, no backdoor users, roles, or keys created; no policies modified; no trust relationships changed
Tools & Infrastructure
TruffleHog— Credential validationBoto3— AWS API enumeration- Operational server hosted MinIO object storage and nginx auth panels
- Domain targeting lists for BeyondTrust remote access endpoints
Detection Signals
TruffleHog user agent in CloudTrail, API calls from multiple IPs with different OS fingerprints (Kali, Windows 11, macOS ARM), systematic enumeration across all AWS regions, S3 ACL and public access configuration queries.
Attacker IPs (from CloudTrail)
209.159.147.239— TruffleHog validation (NYC VPS)170.62.100.245— Cloud enumeration, S3 scanning (Kali)154.47.29.12— Org recon (Windows 11)103.75.11.59— Credential re-validation (macOS ARM)
The Official Soundtrack of the Trivy Supply Chain Attack
Every threat actor leaves fingerprints. TeamPCP left a playlist. Songs embedded in payloads, C2 infrastructure, and attack tooling.
hackerbot-claw is an automated penetration testing bot that scans GitHub for vulnerable projects—its user agent and behavioral patterns differ from the main attacker. MegaGame10418 is the actor who exploited the February 27 PwnRequest, exfiltrating the aqua-bot PAT. Aqua's official post-mortem confirms: "The user agent and behavioral patterns of hackerbot-claw are different than the other events inspected."
The imposter commits (1885610c, 70379aad) never merged into main. They exist in GitHub's object store due to cross-fork object sharing. The attack worked because a malicious tag (v0.69.4) was pushed that referenced these orphan commits—triggering CI/CD builds without any merge or review.
GhostClaw is a separate campaign with different TTPs and IOCs. TeamPCP uses tag hijacking and CI/CD exploitation; GhostClaw uses npm typosquatting and AI workflow hooks. Different infrastructure (registrars, C2 patterns), more social engineering-focused payloads (fake CLI installers with progress bars), and different persistence mechanisms (shell hooks, cron jobs vs. GitHub Actions). No shared IOCs or attribution overlap identified.
TeamPCP's campaigns were inspired by and named after the Dune-themed Shai-Hulud malware, but they are distinct operations. The original Shai-Hulud worm preceded TeamPCP's activity. TeamPCP adopted the branding ("Mini Shai-Hulud") for their own campaigns, creating attribution confusion.
The "Claude Code source leak" was not a TeamPCP operation. It resulted from a bundling mistake where JavaScript source was inadvertently included in a release. This was a build/packaging error, not a supply chain attack or breach.
TeamPCP did not forge or cryptographically bypass SLSA attestations. They achieved RCE within the release pipeline itself (via cache poisoning and pull_request_target exploitation), meaning the attestations were legitimately generated for malicious code. The build system was compromised, not the attestation cryptography. Additionally, this attack vector was already documented—see slsa-framework/slsa#1235 (Nov 2024).
No shared infrastructure or hard evidence links Megalodon to TeamPCP. Some theorized Megalodon could have been the source of stolen credentials used in TeamPCP attacks, but infostealer logs as a credential source is a competing—and more plausible—explanation.
A PureHVNC campaign was briefly misattributed to TeamPCP based on superficial similarities. OpenSourceMalware's analysis found the overlap limited to generic malware behaviors shared by thousands of campaigns. Strong negative indicators—no shared cryptographic keys, no infrastructure overlap, no supply chain delivery, no shared tooling, no TeamPCP branding—make attribution untenable. Most likely a commodity cybercrime operator who purchased PureHVNC and customized delivery with a bespoke PowerShell loader.
The ru_* locale exit condition is a common malware trope, not a reliable attribution indicator. Antiy Labs analysis offers a good breakdown of how TeamPCP deliberately mixes contradictory geopolitical markers: Russian folklore vocabulary with English anomalies ("RICHARD", "FIREBIRD"), Iranian/Israeli targeting in the same function, and destructive "roulette" logic that contradicts their profit motive. This is deliberate false-flag pollution, not authentic origin markers.
Oligo Security's analysis links TeamPCP to their earlier "ShadowRay" research via shared infrastructure. However, the article explicitly hedges: "cannot be determined with 100% certainty whether this represents direct rebrand, shared operator set, or close collaboration." The evidence shows shared capabilities and infrastructure—not confirmed actor identity. Given that TeamPCP is already understood to be a constellation of related actors (access brokers, botnet operators, extortion crews) rather than a single group, infrastructure overlap is particularly weak evidence for unified attribution.