Synthèse de l'incident
Le 27 mars 2026, le groupe TeamPCP a compromis LiteLLM, un proxy open-source pour API de modèles de langage comptant 97 millions de téléchargements par mois sur PyPI. Deux versions malveillantes (1.82.7 et 1.82.8) ont été publiées et disponibles pendant 40 minutes avant leur retrait. Ce court laps de temps a suffi pour compromettre Mercor, startup française d'IA valorisée à 10 milliards de dollars. Le groupe Lapsus$ a ensuite revendiqué l'attaque et mis aux enchères 4 To de données.
40 minutes. C'est le temps pendant lequel les versions empoisonnées de LiteLLM étaient disponibles sur PyPI. 40 minutes suffisent pour compromettre une licorne à 10 milliards de dollars.
Chronologie de l'attaque
- 27 mars 2026, 14h12 UTC : TeamPCP compromet le pipeline CI/CD de LiteLLM et publie la version 1.82.7 malveillante sur PyPI
- 27 mars, 14h28 UTC : version 1.82.8 publiée avec le même payload malveillant
- 27 mars, 14h52 UTC : les mainteneurs de LiteLLM détectent l'anomalie et retirent les versions compromises de PyPI
- 27-31 mars : l'attaquant exploite les credentials volés pour exfiltrer massivement les données de Mercor
- 1er avril : Lapsus$ revendique l'attaque et met les données aux enchères sur leur site de leak
- 2-8 avril : Meta gèle ses contrats avec Mercor. 5 procès déposés en une semaine par des candidats affectés
Données compromises
Le volume revendiqué par Lapsus$ est colossal — 4 To — et touche au cœur de l'activité de Mercor, plateforme de recrutement alimentée par l'IA :
- Profils de candidats complets : CV, parcours professionnels, compétences, prétendues salariales
- Informations personnelles identifiables (PII) : noms, adresses, numéros de téléphone, adresses email
- Vidéos d'entretiens IA : enregistrements vidéo des entretiens automatisés passés par les candidats
- Code source : propriété intellectuelle de la plateforme Mercor, incluant les modèles d'évaluation IA
- Clés API : tokens d'accès aux services tiers utilisés par la plateforme
La nature des données est particulièrement sensible : des vidéos d'entretiens IA ne peuvent pas être « révoquées » comme un mot de passe. Les candidats sont exposés de manière irréversible.
Vecteur d'attaque : compromission du pipeline CI/CD
Pourquoi LiteLLM ?
LiteLLM est un proxy qui permet d'utiliser plus de 100 fournisseurs de LLM (OpenAI, Anthropic, Cohere, etc.) via une API unifiée. Avec 97 millions de téléchargements mensuels, c'est l'un des packages Python les plus utilisés dans l'écosystème IA. Sa compromission offre un accès potentiel à des milliers d'entreprises utilisant des LLM en production.
Le mécanisme d'empoisonnement
TeamPCP a exploité une vulnérabilité dans le pipeline CI/CD de LiteLLM pour injecter du code malveillant directement dans le processus de build :
- Compromission du CI/CD : accès au système de build via des credentials GitHub volés ou un token de déploiement PyPI compromis
- Injection du payload : le code malveillant collecte les variables d'environnement (clés API, tokens, credentials base de données) au démarrage du proxy
- Exfiltration silencieuse : les credentials sont envoyés vers un serveur C2 déguisé en requête de télémétrie légitime
- Accès aux données : avec les credentials de Mercor, l'attaquant accède aux bases de données, au stockage objet et aux sauvegardes
Impact business et juridique
Conséquences immédiates
- Meta gèle ses contrats : le géant américain, client majeur de Mercor pour le recrutement de talents IA, suspend immédiatement sa collaboration
- 5 procès en une semaine : des class actions sont déposées par des candidats dont les vidéos d'entretiens et données personnelles ont été exposées
- Valorisation menacée : la startup, récemment valorisée à 10 Md$, fait face à une crise de confiance majeure auprès de ses investisseurs et clients
RGPD et responsabilité
La présence de vidéos d'entretiens et de données biométriques potentielles (voix, visage) place cet incident dans la catégorie des violations les plus graves au sens du RGPD. Les données biométriques bénéficient d'une protection renforcée (article 9) et leur fuite engage la responsabilité du responsable de traitement.
Recommandations
Sécuriser les dépendances Python
- Utiliser des lock files stricts :
pip freezeoupoetry.lockavec des hashes SHA-256 pour chaque package. Rejeter toute installation dont le hash ne correspond pas. - Vérifier les signatures PGP/Sigstore : vérifier la provenance et l'intégrité de chaque package avant installation en production.
- Auditer le pipeline CI/CD : protéger les tokens de déploiement avec MFA, rotation automatique et principe de moindre privilège. Aucun contributeur individuel ne devrait pouvoir publier seul un package.
- Scanner les dépendances en continu : Dependabot, Renovate ou Snyk pour être alerté immédiatement en cas de version compromise ou retirée.
Protéger les données sensibles
- Chiffrement at rest et in transit : les vidéos d'entretiens et les PII doivent être chiffrés avec des clés gérées par un KMS, pas accessibles via des credentials d'application.
- Segmentation des accès : un proxy LLM n'a aucune raison d'accéder aux bases de données de candidats. Appliquer le moindre privilège à chaque composant.
- Rétention minimale : supprimer les vidéos d'entretiens après le processus de recrutement pour limiter le volume de données exposables.
Enseignements clés
L'incident Mercor révèle un paradoxe de l'écosystème IA : les startups qui manipulent les données les plus sensibles (vidéos, voix, CV complets) sont souvent celles qui dépendent le plus de packages open-source dont la sécurité repose sur une poignée de mainteneurs bénévoles.
40 minutes d'exposition ont suffi. Les pipelines CI/CD modernes téléchargent et déploient automatiquement les nouvelles versions. Sans lock file avec hash, sans vérification de signature, une mise à jour malveillante est déployée en production avant même que quiconque ne la remarque.
Quand votre produit repose sur un package à 97 millions de téléchargements mensuels, vous devez vous demander : qui contrôle réellement ce que vous installez ? Si la réponse est « personne », votre supply chain est un château de cartes.
Sources
- Lapsus$ — Revendication et mise aux enchères sur site de leak (1er avril 2026)
- PyPI Security Advisory — Retrait des versions LiteLLM 1.82.7 et 1.82.8
- Mercor — Communication de crise (2 avril 2026)
- Meta — Suspension des contrats fournisseurs (communiqué interne)
- BerryLLM (mainteneurs LiteLLM) — Post-mortem de l'incident CI/CD
Auditez votre supply chain IA
Vos dépendances Python sont-elles verrouillées et signées ? Vos pipelines CI/CD sont-ils protégés ? C-DIM audite votre chaîne logicielle IA et vous aide à mettre en place les protections essentielles.
Contactez C-DIMOu écrivez-nous directement à contact@c-dim.fr