🗓️ 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