π‘οΈ Threat Intelligence Report: TeamPCP Multi-Stage Supply Chain Campaign
1. Reports Summary Table
The following table lists all 20 TI Mindmap HUB reports analyzed for this assessment, ordered by publication date (newest first).
| # | Title | Publication Date | Source | Platform Link |
|---|---|---|---|---|
| 1 | Weaponizing the Protectors: TeamPCP's Multi-Stage Supply Chain Attack on Security Infrastructure | 2026-04-01 | unit42.paloaltonetworks.com | View Report |
| 2 | Tracking TeamPCP: Investigating Post-Compromise Attacks Seen in the Wild | 2026-03-31 | www.wiz.io | View Report |
| 3 | TeamPCP's Telnyx Windows Malware: Technical Analysis | 2026-03-30 | www.ox.security | View Report |
| 4 | Has TeamPCP Pivoted To Using The PureHVNC RAT? | 2026-03-30 | opensourcemalware.com | View Report |
| 5 | TeamPCP Compromises Telnyx Python SDK to Deliver Credential-Stealing Malware | 2026-03-28 | socket.dev | View Report |
| 6 | TeamPCP Supply Chain Campaign: A March 2026 Retrospective | 2026-03-27 | opensourcemalware.com | View Report |
| 7 | TeamPCP expands: Supply chain compromise spreads from Trivy to Checkmarx GitHub Actions | 2026-03-27 | webflow.sysdig.com | View Report |
| 8 | TeamPCP Partners With Ransomware Group Vect to Target Open Source Supply Chains | 2026-03-26 | socket.dev | View Report |
| 9 | Guidance for detecting, investigating, and defending against the Trivy supply chain compromise | 2026-03-26 | www.microsoft.com | View Report |
| 10 | TeamPCP: Trivy Supply Chain Attack and Kubernetes Wiper | 2026-03-25 | labs.cloudsecurityalliance.org | View Report |
| 11 | TeamPCP's Five-Day Siege: How One Stolen Token Cascaded Across GitHub Actions, Checkmarx, VS Code Extensions, and npm | 2026-03-25 | phoenix.security | View Report |
| 12 | TeamPCP deploys CanisterWorm on NPM following Trivy compromise | 2026-03-25 | www.aikido.dev | View Report |
| 13 | CanisterWorm Gets Teeth: TeamPCP's Kubernetes Wiper Targets Iran | 2026-03-25 | www.aikido.dev | View Report |
| 14 | LiteLLM compromised on PyPI: Tracing the March 2026 TeamPCP supply chain campaign | 2026-03-25 | securitylabs.datadoghq.com | View Report |
| 15 | TeamPCP Hijacks LiteLLM's PyPI Package - Credential Stealer Hits 40k-Star Project | 2026-03-24 | opensourcemalware.com | View Report |
| 16 | Three's a Crowd: TeamPCP trojanizes LiteLLM in Continuation of Campaign | 2026-03-24 | www.wiz.io | View Report |
| 17 | TeamPCP Is Systematically Targeting Security Tools Across the OSS Ecosystem | 2026-03-24 | socket.dev | View Report |
| 18 | KICS GitHub Action Compromised: TeamPCP Strikes Again in Supply Chain Attack | 2026-03-24 | www.wiz.io | View Report |
| 19 | TeamPCP Defaces Aqua Security's Internal GitHub Org - 44 Repos Exposed | 2026-03-23 | opensourcemalware.com | View Report |
| 20 | Threat Alert: TeamPCP, An Emerging Force in the Cloud Native and Ransomware Landscape | 2026-02-06 | flare.io | View Report |
2. Executive Summary
Overview
TeamPCP (also tracked as PCPcat, ShellForce, DeadCatx3) is a rapidly escalating cloud-native cybercrime group that has executed one of the most impactful open-source supply chain campaigns observed to date. Between December 2025 and March 2026, the group evolved from opportunistic exploitation of exposed Docker and Kubernetes APIs into a coordinated, multi-stage supply chain operation that compromised five major vendor ecosystems in just five days during March 2026.
The campaign's defining characteristic is its cascading nature: a single unrevoked CI credential from Aqua Security's Trivy pipeline enabled TeamPCP to snowball access across GitHub Actions, npm, PyPI, OpenVSX extensions, and multiple high-trust security tools (Trivy, Checkmarx KICS, BerriAI LiteLLM, Telnyx SDK). The group exfiltrated over 300 GB of compressed credentials, including cloud tokens, SSH keys, and Kubernetes secrets, from an estimated 500,000+ infected machines and CI/CD runners.
TeamPCP's campaign is notable for three distinct escalation vectors: (1) the deployment of CanisterWorm, a self-propagating npm worm leveraging Internet Computer Protocol (ICP) canisters for decentralized, resilient C2; (2) the integration of a geopolitically targeted Kubernetes wiper aimed at Iranian infrastructure; and (3) a confirmed partnership with the Vect ransomware group, extending stolen credentials into large-scale ransomware deployment via the BreachForums affiliate network with 300,000+ potential operators.
Diagram: Attack Overview
ββββββββββββββββββββββββββββ
β INITIAL ACCESS β
β Unrevoked Trivy CI Token β
β (pull_request_target abuse) β
ββββββββββββββ¬ββββββββββββββ
β
βββββββββββββββββββΌβββββββββββββββββββ
βΌ βΌ βΌ
βββββββββββββββββββ ββββββββββββββββ ββββββββββββββββββββ
β WAVE 1: Trivy β β WAVE 2: KICS β β WAVE 3: LiteLLM β
β GitHub Actions β β Checkmarx β β PyPI Trojanize β
β kamikaze.sh β β GitHub Token β β .pth persistence β
βββββββββ¬ββββββββββ ββββββββ¬ββββββββ ββββββββββ¬ββββββββββ
β β β
βΌ βΌ βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β CREDENTIAL HARVESTING (300 GB+) β
β Cloud tokens Β· SSH keys Β· K8s secrets Β· .env vars β
ββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββ
β
ββββββββββββββββββββββΌβββββββββββββββββββββ
βΌ βΌ βΌ
ββββββββββββββββββ ββββββββββββββββββββ ββββββββββββββββββββ
β WAVE 4: Telnyx β β CanisterWorm β β Vect Ransomware β
β SDK + WAV β β npm worm + ICP β β Partnership + β
β Steganography β β C2 + K8s Wiper β β BreachForums RaaSβ
ββββββββββββββββββ β (Iran targeting) β ββββββββββββββββββββ
ββββββββββββββββββββ
Attribution & Threat Actor Profile
Group Name: TeamPCP
Known Aliases: PCPcat, ShellForce, DeadCatx3
First Observed: December 2025
Motivation: Financial (credential theft, ransomware, cryptomining, extortion) + Destructive/Geopolitical (Iran-targeted wipers)
Affiliation: Confirmed coordination with LAPSUS$; operational partnership with Vect ransomware group
Communication Channels: Telegram (dedicated channels for leaked data), BreachForums, dark web
Primary Targets: Open-source security tools, CI/CD pipelines, cloud-native infrastructure (Docker, Kubernetes, Ray, Redis)
Victim Geography: Global, with specific destructive operations targeting Iran
Victim Sectors: Enterprise (all sectors), with particular impact on organizations using Trivy, Checkmarx, LiteLLM, or Telnyx in their software supply chain
TeamPCP distinguishes itself from traditional APT groups by functioning as a cloud-native cybercrime platform rather than a single-purpose malware group. The group industrializes well-known attack techniques against modern cloud infrastructure and has demonstrated the ability to rapidly pivot between financial (credential theft, RaaS) and destructive (wiper) operations, suggesting dual financial and political motivations.
3. Technical Details
3.1 Malware Analysis & Tooling
TeamPCP developed and deployed an evolving malware toolkit across the campaign:
kamikaze.sh: The initial credential harvester delivered via compromised Trivy GitHub Actions. This shell script evolved through three versions: v1 performed basic credential exfiltration; v2 added GitHub runner process memory scraping by reading /proc/<pid>/mem to bypass GitHub secret masking and extract plaintext tokens; v3 introduced a pull method to download secondary payloads. All versions exfiltrated data to typosquatted domains using HTTP POST with AES-256-CBC encryption wrapped in a 4096-bit RSA public key.
kube.py: A Python-based worm and wiper component representing a major escalation. This payload performs environment fingerprinting to identify Kubernetes clusters and deploys privileged DaemonSets. In Iranian environments, detected via timezone and locale, it deploys the host-provisioner-iran DaemonSet with a kamikaze container that mounts the host root filesystem and wipes all top-level directories before forcing a reboot. On non-Iranian Kubernetes clusters, it deploys host-provisioner-std with the CanisterWorm backdoor as a persistent systemd service. On non-containerized Iranian hosts, it executes rm -rf / --no-preserve-root.
CanisterWorm: A self-propagating npm worm that uses Internet Computer Protocol (ICP) canisters for decentralized, takedown-resistant C2. Each infected npm package acts as a telemetry node, harvesting developer tokens (npm auth, GitHub PATs) and using them to publish additional trojanized packages, creating exponential propagation. Fallback C2 uses Cloudflare tunnel domains and victim-owned GitHub repositories created using stolen GITHUB_TOKEN values.
LiteLLM Credential Stealer: Deployed via trojanized PyPI packages (litellm==1.82.7, 1.82.8), this Python infostealer leverages .pth file abuse to execute automatically whenever any Python process initializes on the host. The payload consists of double Base64-encoded scripts that sweep environment variables, .env files, AWS/Azure/GCP configuration directories, and cloud instance metadata (IMDS) for credential harvesting.
Telnyx SDK Malware: The most technically sophisticated payload in the campaign. It uses WAV audio file steganography to conceal encrypted second-stage payloads within valid audio files, bypassing network inspection and static analysis. The second stage performs dynamic API resolution on Windows and establishes a full remote access toolkit with data exfiltration capabilities across Windows, Linux, and macOS systems.
Supporting Infrastructure Tools: Sliver C2 framework for persistent command-and-control, FRPS and gost for proxying and tunneling, and XMRig for cryptomining monetization.
3.2 Techniques & Attack Phases
The campaign unfolded in a structured, cascading sequence:
Phase 1 - Trivy Compromise (March 23): TeamPCP exploited a known-dangerous pull_request_target GitHub Actions workflow in Aqua Security's Trivy repository. An autonomous bot exfiltrated a high-privilege Personal Access Token (PAT) from the aqua-bot service account. Despite Aqua Security's partial credential rotation, TeamPCP retained access due to incomplete revocation. The attackers defaced Aqua Security's internal GitHub organization (44 repositories exposed) and injected kamikaze.sh into trusted CI/CD workflows.
Phase 2 - Checkmarx KICS Compromise (March 24): Using stolen GitHub PATs harvested from the Trivy breach, TeamPCP poisoned Checkmarx's KICS GitHub Action with a behaviorally identical three-stage credential stealer. The payload exfiltrated to the typosquatted domain checkmarx[.]zone. Malicious OpenVSX extensions (ast-results v2.53.0, cx-dev-assist v1.7.0) were also published.
Phase 3 - LiteLLM PyPI Compromise (March 24): TeamPCP pivoted from GitHub PATs to PyPI publishing tokens. They trojanized the legitimate LiteLLM package (40k+ GitHub stars), publishing malicious versions 1.82.7 and 1.82.8 with a .pth-based persistence mechanism. The exfiltration endpoint used the domain models.litellm[.]cloud.
Phase 4 - Telnyx SDK Compromise (March 28): TeamPCP hijacked PyPI publishing credentials for the Telnyx Python SDK, injecting multi-stage credential-stealing malware that leveraged audio steganography for payload delivery. This represented a technique innovation focused on evading network-based detection.
Phase 5 - CanisterWorm Deployment & Wiper Integration (March 25+): TeamPCP deployed the CanisterWorm npm worm for automated ecosystem-wide propagation. Concurrently, the Iran-targeted Kubernetes wiper was integrated as a secondary payload, marking the convergence of financial and destructive operations. A third variant abandoned Kubernetes-only propagation and added SSH lateral movement by harvesting keys from SSH logs and exploiting the Docker API on port 2375.
Phase 6 - Vect Ransomware Partnership (March 26): TeamPCP formalized a partnership with the Vect ransomware group to weaponize stolen credentials at scale. Vect offered automatic affiliate status and personalized affiliation keys to all 300,000+ BreachForums members, dramatically expanding the attack surface.
3.3 Infrastructure Analysis
TeamPCP employs a multi-layered, resilient infrastructure design:
Primary C2 Domains (Typosquatted): Each attack wave used a vendor-themed typosquatted domain for exfiltration, providing plausible-looking traffic patterns: scan.aquasecurtiy[.]org (Trivy), checkmarx[.]zone (KICS), and models.litellm[.]cloud (LiteLLM).
Decentralized Fallback C2: The ICP canister domain tdtqy-oyaaa-aaaae-af2dq-cai.raw.icp0[.]io provides a blockchain-based, takedown-resistant C2 channel. This is used by CanisterWorm and the Kubernetes wiper/backdoor payloads.
Cloudflare Tunnel Domains: Multiple rotating Cloudflare tunnel domains provide ephemeral, difficult-to-block C2 channels: championships-peoples-point-cassette.trycloudflare.com, create-sensitivity-grad-sequence.trycloudflare.com, investigation-launches-hearings-copying.trycloudflare.com, plug-tab-protective-relay.trycloudflare.com, and souls-entire-defined-routes.trycloudflare.com.
GitHub-Based Fallback: If primary C2 fails, the malware uses the victim's own GITHUB_TOKEN to create hidden repositories with naming patterns such as tpcp-docs-* and docs-tpcp for fallback data exfiltration, making detection more challenging because the traffic originates from legitimate GitHub API endpoints.
Dedicated IP Infrastructure: Eight C2 IP addresses have been consistently observed across the campaign, listed below in the IoC section.
Encryption: Exfiltrated data is encrypted using AES-256-CBC session keys, further wrapped with a hard-coded 4096-bit RSA public key, ensuring data confidentiality even if C2 traffic is intercepted.
4. Detection Opportunities
4.1 CI/CD and Package Monitoring
CI/CD Pipeline Monitoring: Monitor for unexpected modifications to GitHub Actions workflows, especially those using pull_request_target. Alert on commits from unrecognized bot accounts. Validate SHA-pinned references for all GitHub Actions rather than relying on mutable version tags.
Package Registry Monitoring: Monitor for unexpected version publications of critical dependencies such as Trivy, LiteLLM, Checkmarx, and Telnyx. Implement SBOM verification and enforce allowlisted package versions. Alert on .pth file creation in Python site-packages directories.
4.2 Network and Kubernetes Detections
Network Detection: Block or alert on connections to the IoC domains and IPs listed below. Monitor for DNS resolution of trycloudflare.com subdomains from CI/CD runners. Detect HTTP POST requests with large encrypted payloads to unrecognized endpoints. Monitor for connections to ICP canister domains under icp0.io.
Kubernetes Detection: Alert on creation of unexpected DaemonSets in the kube-system namespace, especially host-provisioner-iran or host-provisioner-std. Detect containers named kamikaze or provisioner mounting host root filesystems. Monitor for privileged container creation via Docker API on port 2375.
4.3 Host and Process Detections
Host-Level Detection: Monitor for creation of systemd services masquerading as PostgreSQL utilities such as pgmon, pgmonitor, pglog, pg_state, and internal-monitor. Detect file writes to /var/lib/pgmon/, /var/lib/svc_internal/, or /host/root/.config/sysmon/. Alert on SSH connections with StrictHostKeyChecking=no combined with lateral movement patterns. Monitor for WAV file downloads followed by process execution.
Process-Level Detection: Detect Python processes performing simultaneous AWS/Azure/GCP API calls and Kubernetes API interactions. Monitor for /proc/<pid>/mem reads by non-debugger processes. Alert on Base64 decoding operations followed by network connections.
5. Conclusion
The TeamPCP campaign represents a new paradigm in cloud-native threat activity: a fusion of industrial-scale automation, supply chain compromise expertise, and an evolving malware toolkit designed to attack the trust foundations of modern software development. In under four months, the group evolved from opportunistic exploitation of exposed Docker APIs to a coordinated campaign that compromised five major vendor ecosystems, deployed a blockchain-resilient worm, integrated a geopolitically targeted wiper, and partnered with a ransomware-as-a-service operation, all stemming from a single unrevoked CI credential.
The campaign exposes critical systemic weaknesses: incomplete credential rotation, implicit trust in security tooling, mutable version references in CI/CD workflows, and the lack of behavioral monitoring in software supply chains. Cryptographic integrity checks alone failed against attacks using legitimate but compromised credentials.
Organizations should urgently review their software bills of materials for affected packages, enforce immutable SHA-pinned workflow references, implement strict credential rotation with verification, deploy behavioral anomaly detection across CI/CD environments, and monitor for the indicators of compromise listed below. The convergence of supply chain compromise, credential theft, worm propagation, wiper deployment, and ransomware partnership makes TeamPCP one of the most operationally dangerous threat actors active today.
6. Indicators of Compromise (IoC List)
6.1 IP Addresses (C2 Servers)
| Type | Value | Description |
|---|---|---|
| IPv4 | 23.142.184[.]129 |
TeamPCP C2 server for exfiltration and remote access |
| IPv4 | 45.148.10[.]212 |
TeamPCP C2 server for data exfiltration |
| IPv4 | 63.251.162[.]11 |
TeamPCP C2 server |
| IPv4 | 83.142.209[.]11 |
TeamPCP C2 server |
| IPv4 | 83.142.209[.]203 |
TeamPCP C2 server |
| IPv4 | 195.5.171[.]242 |
TeamPCP C2 server |
| IPv4 | 209.34.235[.]18 |
TeamPCP C2 server |
| IPv4 | 212.71.124[.]188 |
TeamPCP C2 server |
6.2 Domains & URLs (C2 / Exfiltration)
| Type | Value | Description |
|---|---|---|
| Domain | scan.aquasecurtiy[.]org |
Typosquatted primary C2 for Trivy exfiltration |
| Domain | checkmarx[.]zone |
Typosquatted primary C2 for Checkmarx KICS exfiltration |
| Domain | models.litellm[.]cloud |
Typosquatted primary C2 for LiteLLM exfiltration |
| Domain | tdtqy-oyaaa-aaaae-af2dq-cai.raw.icp0[.]io |
ICP canister decentralized backup C2 |
| Domain | championships-peoples-point-cassette.trycloudflare[.]com |
Cloudflare tunnel C2 |
| Domain | create-sensitivity-grad-sequence.trycloudflare[.]com |
Cloudflare tunnel C2 |
| Domain | investigation-launches-hearings-copying.trycloudflare[.]com |
Cloudflare tunnel C2 |
| Domain | plug-tab-protective-relay.trycloudflare[.]com |
Cloudflare tunnel C2 |
| Domain | souls-entire-defined-routes.trycloudflare[.]com |
Cloudflare tunnel C2 |
6.3 File Hashes (SHA256)
| Value | Description |
|---|---|
0880819ef821cff918960a39c1c1aada55a5593c61c608ea9215da858a86e349 |
kamikaze.sh initial credential harvester |
30015dd1e2cf4dbd49fff9ddef2ad4622da2e60e5c0b6228595325532e948f14 |
Self-signed certificate (Wave 1) |
41c4f2f37c0b257d1e20fe167f2098da9d2e0a939b09ed3f63bc4fe010f8365c |
Self-signed certificate (Wave 2) |
d8caf4581c9f0000c7568d78fb7d2e595ab36134e2346297d78615942cbbd727 |
Self-signed certificate (Wave 3) |
0c0d206d5e68c0cf64d57ffa8bc5b1dad54f2dda52f24e96e02e237498cb9c3a |
Malicious payload |
0c6a3555c4eb49f240d7e0e3edbfbb3c900f123033b4f6e99ac3724b9b76278f |
Malicious payload |
18a24f83e807479438dcab7a1804c51a00dafc1d526698a66e0640d1e5dd671a |
Malicious payload |
1e559c51f19972e96fcc5a92d710732159cdae72f407864607a513b20729decb |
Malicious payload |
5e2ba7c4c53fa6e0cef58011acdd50682cf83fb7b989712d2fcf1b5173bad956 |
Malicious payload |
61ff00a81b19624adaad425b9129ba2f312f4ab76fb5ddc2c628a5037d31a4ba |
Malicious payload |
6328a34b26a63423b555a61f89a6a0525a534e9c88584c815d937910f1ddd538 |
Malicious payload |
7321caa303fe96ded0492c747d2f353c4f7d17185656fe292ab0a59e2bd0b8d9 |
Malicious payload |
7b5cc85e82249b0c452c66563edca498ce9d0c70badef04ab2c52acef4d629ca |
Malicious payload |
7df6cef7ab9aae2ea08f2f872f6456b5d51d896ddda907a238cd6668ccdc4bb7 |
Malicious payload |
822dd269ec10459572dfaaefe163dae693c344249a0161953f0d5cdd110bd2a0 |
Malicious payload |
887e1f5b5b50162a60bd03b66269e0ae545d0aef0583c1c5b00972152ad7e073 |
Malicious payload |
bef7e2c5a92c4fa4af17791efc1e46311c0f304796f1172fce192f5efc40f5d7 |
Malicious payload |
c37c0ae9641d2e5329fcdee847a756bf1140fdb7f0b7c78a40fdc39055e7d926 |
Malicious payload |
cd08115806662469bbedec4b03f8427b97c8a4b3bc1442dc18b72b4e19395fe3 |
Malicious payload |
d5edd791021b966fb6af0ace09319ace7b97d6642363ef27b3d5056ca654a94c |
Malicious payload |
e4edd126e139493d2721d50c3a8c49d3a23ad7766d0b90bc45979ba675f35fea |
Malicious payload |
e6310d8a003d7ac101a6b1cd39ff6c6a88ee454b767c1bdce143e04bc1113243 |
Malicious payload |
e64e152afe2c722d750f10259626f357cdea40420c5eedae37969fbf13abbecf |
Malicious payload |
e87a55d3ba1c47e84207678b88cacb631a32d0cb3798610e7ef2d15307303c49 |
Malicious payload |
e9b1e069efc778c1e77fb3f5fcc3bd3580bbc810604cbf4347897ddb4b8c163b |
Malicious payload |
ecce7ae5ffc9f57bb70efd3ea136a2923f701334a8cd47d4fbf01a97fd22859c |
Malicious payload |
f398f06eefcd3558c38820a397e3193856e4e6e7c67f81ecc8e533275284b152 |
Malicious payload |
f7084b0229dce605ccc5506b14acd4d954a496da4b6134a294844ca8d601970d |
Malicious payload |
6.4 File Paths & Filenames
| Type | Value | Description |
|---|---|---|
| Filename | kamikaze.sh |
Initial credential harvester script |
| Filename | kube.py |
Worm/wiper payload for Kubernetes |
| Filename | prop.py |
Malicious Python payload |
| Filename | proxy_server.py |
Malicious Python payload |
| Filename | tpcp.tar.gz |
Malicious archive for payload delivery |
| Path | /host/root/.config/sysmon/sysmon.py |
Persistence dropper location |
| Path | /var/lib/pgmon/pgmon.py |
CanisterWorm backdoor disguised as PostgreSQL utility |
| Path | /var/lib/svc_internal/runner.py |
Wiper/backdoor runner script |
| Path | /tmp/pglog |
Temporary file for malware staging |
| Path | /tmp/.pg_state |
Temporary file for malware staging |
| Path | /etc/systemd/system/internal-monitor.service |
Malicious systemd persistence |
| Path | /etc/systemd/system/pgmonitor.service |
Malicious systemd persistence |
6.5 Kubernetes Artifacts
| Value | Description |
|---|---|
DaemonSet: host-provisioner-iran in kube-system |
Iran-targeted wiper DaemonSet |
DaemonSet: host-provisioner-std in kube-system |
Backdoor DaemonSet for non-Iranian clusters |
Container name: kamikaze |
Wiper container within the DaemonSet |
Container name: provisioner |
Backdoor container within the DaemonSet |
6.6 Trojanized Packages
| Package | Registry | Malicious Versions |
|---|---|---|
| LiteLLM | PyPI | 1.82.7, 1.82.8 |
| Telnyx Python SDK | PyPI | Compromised versions |
| ast-results | OpenVSX | v2.53.0 |
| cx-dev-assist | OpenVSX | v1.7.0 |
| Multiple npm packages | npm | CanisterWorm-propagated |
7. MITRE ATT&CK Techniques
| Technique ID | Technique Name | Tactic | Description |
|---|---|---|---|
| T1195 | Supply Chain Compromise | Initial Access | Systematic compromise of trusted OSS security tools such as Trivy, KICS, LiteLLM, and Telnyx to gain access to downstream consumers. |
| T1195.002 | Compromise Software Dependencies and Development Tools | Initial Access | Injection of infostealer payloads directly into GitHub Actions, PyPI registries, and npm packages. |
| T1078.004 | Valid Accounts: Cloud Accounts | Initial Access | Use of stolen GitHub PATs, PyPI publishing tokens, and service account credentials for authenticated access. |
| T1059.004 | Command and Scripting Interpreter: Unix Shell | Execution | kamikaze.sh credential harvester execution across CI/CD runners. |
| T1059.006 | Command and Scripting Interpreter: Python | Execution | kube.py worm/wiper and .pth-based credential stealer execution on every Python process initialization. |
| T1053.003 | Scheduled Task/Job: At (Linux) | Persistence | Systemd service registration for persistent backdoor (pgmonitor.service, internal-monitor.service). |
| T1036.005 | Masquerading: Match Legitimate Name or Location | Defense Evasion | Disguising malware as PostgreSQL utilities (pgmon, pglog, pg_state) and systemd services. |
| T1027 | Obfuscated Files or Information | Defense Evasion | Double Base64-encoded payloads and WAV steganography to bypass static analysis. |
| T1140 | Deobfuscate/Decode Files or Information | Defense Evasion | Runtime decoding of Base64 payloads to extract C2 endpoints. |
| T1552.001 | Unsecured Credentials: Credentials in Files | Credential Access | Sweeping .env files, AWS/Azure/GCP config directories, and SSH keys for credential harvesting. |
| T1552.005 | Unsecured Credentials: Cloud Instance Metadata API | Credential Access | Harvesting credentials from cloud instance metadata service (IMDS) endpoints. |
| T1558.001 | Steal or Forge Kerberos Tickets: Golden Ticket | Credential Access | Using a victim's GITHUB_TOKEN to create hidden repositories as a fallback exfiltration channel. |
| T1530 | Data from Cloud Storage Object | Collection | Extraction of cloud access tokens, SSH keys, and Kubernetes secrets. |
| T1567.002 | Exfiltration Over Web Service | Exfiltration | Data exfiltration to vendor-themed typosquatted domains and ICP canister endpoints. |
| T1020 | Automated Exfiltration | Exfiltration | Automatic credential exfiltration triggered by npm install and Python process initialization. |
| T1570 | Lateral Tool Transfer | Lateral Movement | Worm propagation across Kubernetes clusters and Docker hosts. |
| T1021.007 | Remote Services: Kubernetes API | Lateral Movement | Scanning exposed Docker APIs on port 2375, Kubernetes API exploitation, and SSH key harvesting for lateral spread. |
| T1072 | Software Deployment Tools | Lateral Movement | SDK-squatting targeting internal development kits. |
| T1105 | Ingress Tool Transfer | Command and Control | Download of second-stage payloads (kube.py, WAV steganography payloads). |
| T1573.002 | Encrypted Channel: Asymmetric Cryptography | Command and Control | AES-256-CBC session key wrapped in a 4096-bit RSA public key for encrypted C2 traffic. |
| T1008 | Fallback Channels | Command and Control | ICP canister backup C2, Cloudflare tunnels, and victim GitHub repositories as fallback channels. |
| T1486 | Data Encrypted for Impact | Impact | Ransomware deployment via the Vect partnership for extortion at scale. |
| T1485 | Data Destruction | Impact | Iran-targeted Kubernetes wiper deploying privileged DaemonSets to brick cluster nodes. |
Report generated by TI Mindmap HUB - Cross-source Threat Intelligence Analysis Analysis date: 2026-04-03 | Sources analyzed: 20 | Classification: TLP:WHITE