🗓️ Contexte
Source : BankInfoSecurity, publié le 26 octobre 2026. Cet article rapporte une attaque de type supply chain ayant ciblé LiteLLM, une passerelle open-source pour modèles d’IA, avec des analyses complémentaires de Microsoft, Wiz et Socket.
🔑 Vecteur initial : credential exposé non révoqué
En mai 2026, LiteLLM a accidentellement publié une clé maître haute-privilège de son Agent Platform sans la révoquer. Le 10 octobre 2026, un attaquant s’est connecté à la plateforme via cette clé et a extrait un token OAuth GitHub CLI de niveau owner, donnant accès à l’ensemble des dépôts.
⚙️ Déroulement de l’attaque
- L’acteur a utilisé des workflows GitHub légitimes pour collecter des tokens supplémentaires, dont ceux de deux mainteneurs de code.
- Ces accès ont permis de contourner le contrôle à deux approbateurs requis pour publier une release.
- Le workflow de release a été redirigé vers un dépôt malveillant contrefait.
- Le 21 octobre 2026, le package compromis version 1.107.0 et une image container malveillante ont été publiés et sont restés actifs environ deux heures.
- 50 000 téléchargements ont été enregistrés durant cette fenêtre (source : ClickPy).
🕵️ Discrétion de l’attaquant
Selon Socket, l’attaque est restée indétectée pendant au moins 11 jours car l’acteur a ajouté des workflows sur des branches GitHub éphémères créées, utilisées et supprimées en quelques minutes.
🦠 Payload : le stealer “privcollect”
Wiz a identifié un credential stealer nommé “privcollect” par l’attaquant, vraisemblablement assisté par IA (noms de variables verbeux). Il cible :
- Navigateurs : secrets et cookies de Chrome, Firefox, Edge, Safari
- Cloud : credentials AWS, comptes GCP, tokens Azure CLI
- IA : clés API OpenAI, Anthropic, Cohere et autres fournisseurs LLM (variables d’environnement et fichiers de config)
- Systèmes : clés SSH privées, clés GPG, historiques shell
Sur les systèmes Unix, le malware pouvait potentiellement récupérer et exécuter du code Python additionnel (aucune activité de ce type détectée).
💥 Impact et post-exploitation
Les systèmes affectés incluent : postes développeurs, agents CI/CD, environnements de test, containers. L’exploitation des credentials volés a débuté 4h30 après l’exfiltration depuis deux adresses IP. Wiz a observé une validation de credentials AWS issus de runners CI et nœuds Kubernetes compromis.
📋 Type d’article
Post-mortem / rapport d’incident combinant les déclarations officielles de LiteLLM et les analyses techniques de Microsoft, Wiz et Socket, visant à documenter le déroulement complet de l’attaque supply chain.
🧠 TTPs et IOCs détectés
TTP
- T1552.001 — Unsecured Credentials: Credentials In Files (Credential Access)
- T1195.001 — Supply Chain Compromise: Compromise Software Dependencies and Development Tools (Initial Access)
- T1528 — Steal Application Access Token (Credential Access)
- T1539 — Steal Web Session Cookie (Credential Access)
- T1552.004 — Unsecured Credentials: Private Keys (Credential Access)
- T1059.006 — Command and Scripting Interpreter: Python (Execution)
- T1176 — Browser Extensions (Persistence)
- T1078 — Valid Accounts (Defense Evasion)
- T1041 — Exfiltration Over C2 Channel (Exfiltration)
Malware / Outils
- privcollect (stealer)
🟡 Indice de vérification factuelle : 50/100 (moyenne)
- ✅ bankinfosecurity.com — source reconnue (liste interne) (20pts)
- ✅ 3889 chars — texte complet (fulltext extrait) (15pts)
- ⬜ aucun IOC extrait (0pts)
- ⬜ pas d’IOC à vérifier (0pts)
- ✅ 9 TTPs MITRE identifiées (15pts)
- ⬜ date RSS ou approximée (0pts)
- ⬜ aucun acteur de menace nommé (0pts)
- ⬜ pas de CVE à vérifier (0pts)
🔗 Source originale : https://www.bankinfosecurity.com/exposed-litellm-key-enabled-pypi-supply-chain-attack-a-33211