Résumé exécutif
- Le groupe cybercriminel TeamPCP revendique le vol de 450 dépôts privés appartenant à Mistral AI, incluant code technique, outils métiers et projets clients.
- Les attaquants exigent 25 000 dollars (environ 21 420 euros) sous peine de diffusion publique des données sous une semaine.
- Mistral AI confirme une intrusion temporaire le 12 mai 2026 dans un système de gestion de code, mais affirme qu’aucune donnée client, service hébergé ou environnement de recherche n’a été touché.
- L’attaque a compromis la chaîne d’approvisionnement npm : des paquets malveillants ont été publiés avec une signature de provenance SLSA niveau 3, une première sur cette plateforme.
- Le malware persiste via des hooks dans le répertoire
~/.claude/(Claude Code) et des tâchestasks.jsondans VS Code, résistant à une simple commandenpm uninstall. - Parmi les archives volées figurent
pfizer-rfp-2025.tar.gz,mistral-finance-agent.tar.gz,kyc-doc-agent.tar.gz, ainsi que des outils internes liés à la facturation, aux abonnements API et à la gestion clients. - TeamPCP a détourné des jetons OIDC depuis les pipelines GitHub Actions de TanStack pour signer les paquets avec une identité de mainteneur légitime.
Introduction
Le 15 mai 2026, le groupe de cybercriminels TeamPCP a revendiqué sur un forum anglophone la compromission de 450 dépôts internes de Mistral AI, start-up française spécialisée dans l’intelligence artificielle. Les attaquants réclament une rançon de 25 000 dollars et menacent de publier l’intégralité des données si aucune transaction n’intervient sous une semaine. L’incident révèle une sophistication technique inédite, mêlant attaque de la chaîne d’approvisionnement, signature cryptographique détournée et mécanismes de persistance avancés. Cette affaire soulève des questions majeures sur la sécurité des environnements de développement exposés aux outils d’IA générative et aux plateformes de gestion de code.
Chronologie et détails de l’intrusion chez Mistral AI
TeamPCP affirme avoir accédé aux dépôts privés de Mistral AI le 12 mai 2026. Un porte-parole de la start-up confirme une compromission temporaire d’un système de gestion de code, sans préciser la méthode initiale d’intrusion. Les hackers auraient exploité des jetons d’authentification exposés pour cloner massivement des dépôts avant que les clés ne soient révoquées.
Les noms d’archives divulgués dans la revendication incluent des éléments techniques (mistral-inference-internal.tar.gz, mistral-finetune-internal.tar.gz), des outils de sécurité (chatbot-security-evaluation.tar.gz, kyc-doc-agent.tar.gz), des plateformes cloud (devstral-cloud.tar.gz) et des interfaces internes (dashboard.tar.gz). La fenêtre d’exposition côté npm a été très courte : 188 minutes, entre 22h45 UTC le 11 mai et 01h53 UTC le 12 mai.
Mistral AI relativise la portée de l’incident : aucun service hébergé, aucune donnée client et aucun environnement de recherche n’auraient été impactés. Les dépôts concernés sont présentés comme non critiques. Toutefois, la présence d’archives liées à des clients nommément identifiables, comme le dossier pfizer-rfp-2025.tar.gz (appel d’offres avec le laboratoire pharmaceutique), indique que des informations commerciales sensibles ont pu être exposées.
Contenu des données compromises : du code technique aux projets clients
Les fichiers revendiqués couvrent un spectre large, allant du cœur technique des modèles d’IA à des applications métiers verticales. Trois catégories principales se dégagent :
- Cœur technique : inférence, fine-tuning, benchmarks et expérimentations. Les archives
mistral-inference-internaletmistral-finetune-internaly appartiennent. - Outils métiers : finance, santé, juridique et conformité. On trouve
mistral-finance-agent.tar.gz,mistral-lawyer-internal.tar.gz,cma-customer-care-internal.tar.gzetkyc-doc-agent.tar.gz. - Projets clients : le dossier
pfizer-rfp-2025.tar.gzest un appel d’offres impliquant un grand compte américain. D’autres dépôts commemistral-solutionssuggèrent des déploiements chez des partenaires.
Selon le porte-parole de Mistral, les attaquants ont fourni un extrait d’un dépôt contenant du code backend lié à la gestion des clients, aux abonnements API, aux métriques de facturation et aux fonctionnalités d’export de données. Ces éléments, bien que non critiques selon la start-up, pourraient être exploités par des concurrents ou des acteurs malveillants pour cartographier l’infrastructure commerciale de Mistral AI.
Une attaque de la chaîne d’approvisionnement avec signature SLSA niveau 3
La particularité de cette attaque réside dans la contamination des paquets npm officiels de Mistral AI. TeamPCP a publié trois versions malveillantes du paquet @mistralai/mistralai (2.2.2, 2.2.3, 2.2.4), ainsi que des variantes pour Azure et GCP (1.7.1, 1.7.2, 1.7.3) et la release mistralai==2.4.6 sur PyPi.
Ces paquets portaient un certificat de provenance SLSA niveau 3 valide. SLSA (Supply chain Levels for Software Artifacts) est un cadre de confiance qui atteste de l’intégrité d’un artefact logiciel via des signatures cryptographiques liées à des pipelines de CI/CD. Obtenir un niveau 3 signifie que la provenance de l’artefact est vérifiée de bout en bout, avec un build reproductible et une chaîne d’approvisionnement protégée. C’est la première fois qu’un malware parvient à se faire signer à ce niveau sur npm.
TeamPCP a réussi en détournant des jetons OIDC (OpenID Connect) depuis les pipelines GitHub Actions de TanStack, une bibliothèque JavaScript populaire. Ces jetons permettent d’authentifier un workflow sans exposer de secret, mais une fois compromis, ils donnent la possibilité de publier des paquets sous l’identité d’un mainteneur légitime. Les attaquants ont ainsi republié les paquets corrompus avec la signature SLSA de TanStack, rendant la détection extrêmement difficile.
Persistance avancée : hooks Claude Code et VS Code
Au-delà de la signature frauduleuse, le malware déploie un mécanisme de persistance inédit. Le code malveillant (distribué via mistralai==2.4.6 sur PyPi) télécharge un fichier transformers.pyz depuis l’IP 83.142.209.194 vers /tmp/, puis lance un processus détaché en arrière-plan sur les systèmes Linux.
La persistance s’effectue via deux vecteurs :
- Hooks de Claude Code : le malware écrit dans le répertoire
~/.claude/, injectant des scripts qui se déclenchent chaque fois que l’outil de développement d’Anthropic est lancé. - Tâches d’autoexécution VS Code : le fichier
.vscode/tasks.jsonest modifié pour exécuter le payload lors de l’ouverture de l’IDE.
Une simple commande npm uninstall ne suffit pas à nettoyer la machine : tant que les fichiers de hook persistent sur le disque, le redémarrage se produit à chaque ouverture d’un environnement de développement. Cette technique cible directement les ingénieurs, souvent actifs dans des environnements locaux connectés à des dépôts sensibles.
La charge utile collecte des jetons d’authentification (GitHub, npm, GitLab, CircleCI), des identifiants cloud (AWS, GCP, Azure), des secrets Kubernetes et Vault, ainsi que des fichiers de configuration de coffres-forts (~/.ssh, .env). Le nom transformers.pyz a été choisi pour imiter la bibliothèque Hugging Face Transformers, omniprésente dans les projets IA, réduisant les soupçons.
Rançon et réaction de Mistral AI
TeamPCP réclame 25 000 dollars, soit environ 21 420 euros, pour ne pas divulguer les 450 dépôts. Le montant est relativement faible comparé aux levées de fonds de Mistral AI (plusieurs milliards d’euros depuis 2023), ce qui suggère que l’objectif du groupe est moins financier que médiatique ou stratégique. Les hackers ont précisé que la rançon expire autour du 19 ou 20 mai 2026, après quoi les données seront rendues publiques gratuitement.
Dans un communiqué, Mistral AI reconnaît l’incident mais en minimise l’impact : aucune donnée client, aucun service hébergé, aucun environnement de recherche n’aurait été compromis. La start-up affirme que les dépôts touchés étaient non critiques et que des mesures correctives ont été prises (révocation des jetons, mise à jour des paquets npm). Aucune information n’a été communiquée sur d’éventuelles notifications aux autorités ou aux clients concernés.
À retenir
- TeamPCP a volé 450 dépôts privés de Mistral AI, dont du code technique, des outils métiers et des projets clients (Pfizer, KYC, finance).
- L’attaque a utilisé des paquets npm malveillants signés avec un certificat SLSA niveau 3, une première sur cette plateforme, rendant la détection quasi impossible sans inspection approfondie.
- La persistance via les hooks de Claude Code et les tâches VS Code représente une évolution notable des menaces ciblant les développeurs, rendant le nettoyage manuel difficile.
- La rançon de 25 000 dollars semble délibérément basse, orientée vers un objectif de notoriété ou de déstabilisation plutôt que de profit immédiat.
- Les entreprises utilisant des outils d’IA générative doivent renforcer la sécurité de leurs pipelines CI/CD, l’audit des jetons OIDC et la surveillance des dépôts npm tiers.
Questions fréquentes
Qu’est-ce que la certification SLSA niveau 3 ?
SLSA (Supply chain Levels for Software Artifacts) est un cadre de sécurité pour la chaîne d’approvisionnement logicielle. Le niveau 3 exige que l’artefact soit construit à partir d’une source vérifiée, avec un processus de build reproductible et une signature cryptographique liée à un pipeline CI/CD. Obtenir ce niveau implique que la provenance du paquet est attestée de manière forte — ce que TeamPCP a contourné en détournant des jetons OIDC.
Comment le malware persiste-t-il après une désinstallation ?
Le malware ne réside pas uniquement dans le paquet npm installé. Il écrit des hooks dans le répertoire ~/.claude/ (utilisé par Claude Code) et modifie le fichier .vscode/tasks.json de VS Code. Ces fichiers exécutent le payload à chaque ouverture de l’outil, indépendamment de la présence du paquet d’origine. Une désinstallation de npm ne supprime pas ces hooks.
Quelles données ont été exposées dans le cadre de l’appel d’offres Pfizer ?
L’archive pfizer-rfp-2025.tar.gz contient probablement des documents relatifs à une demande de proposition (Request for Proposal) entre Mistral AI et le laboratoire pharmaceutique. Aucun détail précis n’a été divulgué, mais il s’agit de données commerciales sensibles pouvant inclure des spécifications techniques, des accords de confidentialité ou des informations tarifaires.
Conclusion
L’incident chez Mistral AI illustre la montée en puissance des attaques ciblant la chaîne d’approvisionnement logicielle des entreprises d’IA. La combinaison d’une signature SLSA niveau 3 frauduleuse, d’une persistance via des hooks d’éditeurs de code et d’un ciblage précis de jetons d’authentification marque un saut qualitatif dans les méthodes des groupes cybercriminels. Alors que la rançon demeure modique, la capacité à obtenir et publier des dépôts clients pourrait causer des dommages réputationnels et concurrentiels importants pour Mistral AI. Cette affaire rappelle que la sécurité ne s’arrête pas aux périmètres réseau ou aux applications déployées : les environnements de développement locaux, les outils d’IA et les pipelines CI/CD deviennent des surfaces d’attaque privilégiées. Les organisations doivent revoir leurs politiques de gestion des jetons, renforcer l’audit des signatures de paquets et sensibiliser leurs équipes aux risques de persistance via des outils de développement courants.