đ Contexte
PubliĂ© le 22 avril 2026 par JFrog Security Research, cet article documente la compromission du package PyPI xinference (versions 2.6.0, 2.6.1 et 2.6.2) dans le cadre d’une campagne multi-Ă©cosystĂšme attribuĂ©e au groupe TeamPCP. Les versions malveillantes ont Ă©tĂ© retirĂ©es (yanked) par les mainteneurs aprĂšs signalement d’utilisateurs.
đŻ Nature de l’attaque
Il ne s’agit pas d’un typosquatting mais d’un dĂ©tournement de la ligne de release lĂ©gitime de xinference. Le code malveillant est injectĂ© dans xinference/__init__.py, ce qui le rend exĂ©cutĂ© dĂšs l’import du package. Un payload base64 est passĂ© Ă un sous-processus Python dĂ©tachĂ© (subprocess.Popen) qui s’exĂ©cute en arriĂšre-plan, dissimulĂ© du processus principal.
âïž Analyse technique en deux Ă©tapes
Stage 1 â Wrapper et exfiltration :
- Décode un second bloc base64 (collecteur)
- Pipe le collecteur dans un interpréteur Python enfant
- Compresse la sortie dans
love.tar.gz - Exfiltre via POST curl vers
https://whereisitat.lucyatemysuperbox.space/avec l’en-tĂȘte personnalisĂ©X-QT-SR: 14
Stage 2 â Reconnaissance et collecte de secrets : Le collecteur cible notamment :
- Clés SSH privées et clés hÎtes
- Credentials AWS (fichiers + IMDS IMDSv2 + Secrets Manager + SSM)
- Configs Kubernetes et tokens de service account
- Auth Docker, tokens npm/PyPI/Cargo
- Fichiers
.env, configs DB, VPN (WireGuard), Terraform - ClĂ©s TLS, wallets crypto (Bitcoin, Ethereum, Solana, Monero, CardanoâŠ)
- Webhooks Slack/Discord, clés API dans
.envet.json
đ Lien avec la campagne TeamPCP
Le marqueur # hacked by teampcp est identique aux compromissions prĂ©cĂ©dentes de litellm et telnyx. DiffĂ©rences notables avec les variantes prĂ©cĂ©dentes : absence de chiffrement (AES-256-CBC + RSA-4096), absence de persistance (pas de service systemd, pas de pod K8s privilĂ©giĂ©), nom d’archive diffĂ©rent (love.tar.gz vs tpcp.tar.gz), nouveau domaine C2. La logique de collecte reste cohĂ©rente avec le tooling connu de TeamPCP.
đ Note de l’acteur
TeamPCP a niĂ© son implication via Twitter, affirmant qu’il s’agit d’un copycat utilisant leur nom et leur payload.
đ Type d’article
Analyse technique publiée par JFrog Security Research, visant à documenter la compromission, fournir les IOCs et guider la remédiation pour les utilisateurs affectés.
đ§ TTPs et IOCs dĂ©tectĂ©s
Acteurs de menace
TTP
- T1195.001 â Supply Chain Compromise: Compromise Software Dependencies and Development Tools (Initial Access)
- T1059.006 â Command and Scripting Interpreter: Python (Execution)
- T1027 â Obfuscated Files or Information (Defense Evasion)
- T1140 â Deobfuscate/Decode Files or Information (Defense Evasion)
- T1552.001 â Unsecured Credentials: Credentials In Files (Credential Access)
- T1552.005 â Unsecured Credentials: Cloud Instance Metadata API (Credential Access)
- T1005 â Data from Local System (Collection)
- T1041 â Exfiltration Over C2 Channel (Exfiltration)
- T1036 â Masquerading (Defense Evasion)
- T1082 â System Information Discovery (Discovery)
- T1083 â File and Directory Discovery (Discovery)
- T1552.004 â Unsecured Credentials: Private Keys (Credential Access)
IOC
- IPv4 :
83.142.209.203â AbuseIPDB · VT · ThreatFox - Domaines :
whereisitat.lucyatemysuperbox.spaceâ VT · URLhaus · ThreatFox - Domaines :
models.litellm.cloudâ VT · URLhaus · ThreatFox - URLs :
https://whereisitat.lucyatemysuperbox.space/â URLhaus - SHA256 :
e1e007ce4eab7774785617179d1c01a9381ae83abfd431aae8dba6f82d3ac127â VT · MalwareBazaar - SHA256 :
077d49fa708f498969d7cdffe701eb64675baaa4968ded9bd97a4936dd56c21câ VT · MalwareBazaar - SHA256 :
fe17e2ea4012d07d90ecb7793c1b0593a6138d25a9393192263e751660ec3cd0â VT · MalwareBazaar - Fichiers :
love.tar.gz - Fichiers :
tpcp.tar.gz - Chemins :
xinference/__init__.py
Malware / Outils
- TeamPCP credential harvester (xinference) (stealer)
đą Indice de vĂ©rification factuelle : 65/100 (haute)
- ⏠research.jfrog.com â source non rĂ©fĂ©rencĂ©e (0pts)
- â 10866 chars â texte complet (fulltext extrait) (15pts)
- â 10 IOCs dont des hashes (15pts)
- â 6/7 IOCs confirmĂ©s (AbuseIPDB, MalwareBazaar, ThreatFox, URLhaus, VirusTotal) (15pts)
- â 12 TTPs MITRE identifiĂ©es (15pts)
- ⏠date RSS ou approximée (0pts)
- â acteur(s) identifiĂ©(s) : TeamPCP (5pts)
- ⏠pas de CVE à vérifier (0pts)
IOCs confirmés externellement :
83.142.209.203(ip) â VT (22/94 dĂ©tections) + ThreatFox (Unknown malware)e1e007ce4eab7774âŠ(sha256) â VT (3/76 dĂ©tections)077d49fa708f4989âŠ(sha256) â VT (9/77 dĂ©tections)fe17e2ea4012d07dâŠ(sha256) â VT (24/76 dĂ©tections)whereisitat.lucyatemysuperbox.space(domain) â VT (12/94 dĂ©tections)
đ Source originale : https://research.jfrog.com/post/xinference-compromise/