Votre chaîne d'approvisionnement IA exécute aussi du code
Poids de modèles, paquets, CLI d'IA, serveurs MCP et skills : chaque pièce que vous installez s'exécute avec vos droits. Les attaques déjà observées, les contrôles qui fonctionnent et ce qu'exige l'Union européenne depuis le 11 septembre 2026.
La chaîne d'approvisionnement d'une application d'IA ne se limite plus à npm ou PyPI : elle comprend les poids de modèles, les jeux de données, les CLI et extensions d'IA, les serveurs MCP et les skills. En 2025 et 2026, on a vu des modèles qui exécutaient du code au chargement, des paquets enregistrés sous des noms inventés par les modèles, des paquets compromis qui utilisaient les CLI d'IA de la victime pour chercher des secrets et une place de marché de skills comptant des centaines d'éléments malveillants.
Les contrôles connus restent valables (versions figées, moindre privilège, registres privés, inventaire), avec une nuance nouvelle : une signature valide ne prouve pas que le code est sûr. Et depuis le 11 septembre 2026, tout éditeur qui vend des produits logiciels dans l'Union européenne, y compris depuis la Colombie, doit émettre sous 24 heures une alerte précoce sur les vulnérabilités activement exploitées.
La nouvelle chaîne d'approvisionnement de l'IA
Une application d'IA dépend de bien plus que de son propre code. Chacune de ces pièces est écrite par quelqu'un d'autre, arrive par un registre ou une place de marché et s'exécute avec vos droits :
- Poids et fichiers de modèles, souvent téléchargés depuis Hugging Face, dans des formats qui peuvent exécuter du code au chargement.
- Jeux de données de fine-tuning, d'évaluation et d'index RAG, qui décident de ce que le modèle apprend et répète.
- Paquets et SDK, comme les passerelles d'IA et les frameworks d'agents, exposés aux mêmes attaques npm et PyPI que n'importe quelle bibliothèque.
- CLI et extensions d'IA pour l'IDE, qui travaillent avec les fichiers, jetons et sessions cloud du développeur.
- Serveurs MCP : du code qui tourne sur votre machine, plus des descriptions d'outils que le modèle lit comme des instructions.
- Prompts, skills et fichiers de règles : des instructions en langage naturel qui, comme le souligne Unit 42 à propos des skills d'agents, s'exécutent avec tous les droits de l'agent.
Le Top 10 de l'OWASP pour les applications de LLM classe la chaîne d'approvisionnement en LLM03 et l'empoisonnement des données et des modèles en LLM04 ; la liste agentique ajoute ASI04, les vulnérabilités de la chaîne d'approvisionnement agentique. La surface d'attaque n'est pas nouvelle par nature, mais par sa vitesse : un agent installe, exécute et enchaîne ces pièces sans qu'un humain les lise.
Fichiers de modèles et données : du code qui s'exécute au chargement
Pickle, le format par défaut des poids PyTorch, peut exécuter du code arbitraire au chargement d'un fichier. Hugging Face analyse les fichiers déposés, mais prévient que cette analyse n'est pas infaillible. La menace est réelle : en février 2024, JFrog a trouvé une centaine de modèles sur la plateforme avec de vraies charges malveillantes, dont l'un ouvrait un reverse shell au chargement. Un an plus tard, ReversingLabs a découvert deux modèles (« nullifAI ») empaquetés dans des fichiers pickle volontairement corrompus qui échappaient à Picklescan, le scanner de la plateforme ; Hugging Face les a retirés en moins de 24 heures et a mis l'outil à jour.
L'échelle compte aussi. En avril 2025, Protect AI et Hugging Face avaient analysé 4,47 millions de versions de modèles dans 1,41 million de dépôts et signalé 352 000 problèmes dangereux ou suspects sur 51 700 modèles. Une voie plus sûre existe : safetensors stocke les tenseurs sans code exécutable (un audit de Trail of Bits en 2023 n'a trouvé aucune faille critique permettant d'exécuter du code arbitraire), et PyTorch 2.6 a fait du chargement des seuls poids le comportement par défaut en janvier 2025.
Les poids ne sont pas le seul vecteur. En 2025, Pillar Security a montré des instructions cachées dans le modèle de chat d'un fichier GGUF, invisibles pour les scanners qui n'inspectent que les poids. Côté données, les chiffres publics sur l'empoisonnement réel de modèles d'entreprise sont rares ; le risque documenté se situe dans la chaîne de traitement. En avril 2026, l'OWASP a relié la compromission de LiteLLM à une brèche chez Mercor, fournisseur de données pour l'IA, qui a exposé des flux de données d'entraînement de laboratoires, selon WIRED.
Ne chargez que des safetensors (ou d'autres formats sans exécution de code) d'éditeurs vérifiés, avec une version figée par empreinte. Traitez tout modèle livré avec son propre code ou ses propres gabarits comme un logiciel tiers : relisez-le avant la production.
Paquets hallucinés : le slopsquatting
Les modèles de code recommandent parfois des paquets qui n'existent pas. Une étude présentée à USENIX Security 2025 (Spracklen et al.) a testé 16 modèles générateurs de code sur 576 000 échantillons : au moins 5,2 % des paquets suggérés étaient inventés pour les modèles commerciaux et 21,7 % pour les modèles open source, soit 205 474 noms uniques inexistants. Il suffit à un attaquant d'enregistrer les noms que les modèles inventent régulièrement et d'attendre : c'est le slopsquatting.
Les agents rendent le risque concret. En avril 2026, ReversingLabs a décrit PromptMink : un agent de code a ajouté une dépendance npm malveillante à un projet d'agent de trading de cryptomonnaies, dans un commit co-signé par Claude Opus, exposant des portefeuilles. ReversingLabs relie la campagne à Famous Chollima, un groupe lié à la Corée du Nord qui empile des paquets pour tromper les assistants de code plus que les humains.
Conséquence pratique : un agent qui peut lancer npm install ou pip install est un nouveau développeur sans moyen de savoir quels paquets sont réels. Faites passer ses installations par une liste d'autorisation ou un registre privé, et relisez les changements du lockfile comme n'importe quel code.
Les attaques qui ont utilisé des outils d'IA, 2025–2026
Des attaques classiques de la chaîne d'approvisionnement, avec une cible nouvelle : les outils d'IA sur le poste du développeur.
| Date | Incident | Ce qui s'est passé | Leçon |
|---|---|---|---|
| Juillet 2025 | Amazon Q Developer pour VS Code 1.84.0 | Publiée avec un prompt injecté demandant à l'agent d'effacer des ressources locales et cloud ; l'attaquant est entré grâce à un jeton GitHub aux droits trop larges. Selon AWS, une erreur de syntaxe a empêché l'exécution | Réduisez au minimum les jetons de CI |
| Août 2025 | s1ngularity (Nx, environ 6 millions d'installations par semaine) | Des versions malveillantes, en ligne environ 4 heures, ont tenté d'utiliser les CLI d'IA de la victime (Claude, Gemini) pour chercher des secrets, puis les ont publiés dans des dépôts GitHub publics | Votre CLI d'IA travaille aussi pour l'attaquant |
| Septembre et novembre 2025 | Vers Shai-Hulud (npm) | Plus de 500 paquets compromis lors de la première vague (CISA) ; environ 700 paquets et plus de 25 000 dépôts de secrets volés lors de la seconde (Wiz) | Figez les versions et exigez une MFA résistante au phishing |
| Septembre 2025 | postmark-mcp | Le premier serveur MCP malveillant documenté : après 15 versions saines, la 1.0.16 copiait en silence chaque e-mail sortant vers un attaquant | Un historique propre ne prouve rien |
| Février 2026 | ClawHavoc (skills de ClawHub) | Koi Security a trouvé 341 skills malveillants sur 2 857 audités ; 335 installaient un voleur de données macOS via de fausses étapes d'installation préalables | Un skill est du code, même rédigé en langage naturel |
| Mars 2026 | LiteLLM (environ 95 millions de téléchargements par mois) | Deux versions piégées sur PyPI, en ligne environ 40 minutes, volaient des secrets cloud, SSH et Kubernetes ; l'accès remonte à un scanner de sécurité compromis dans sa CI | Quarante minutes suffisent |
| Septembre 2026 | TeamPCP (rapport de Google GTIG) | Copies piégées de serveurs MCP sur PyPI, fichiers cachés dans les dossiers .claude et .cursor, et paquets publiés avec des attestations signées valides grâce à des jetons de CI volés | La provenance ne prouve pas la sécurité |
Autre signal : en février 2026, Socket a trouvé 19 paquets npm aux noms quasi identiques à des paquets légitimes ; l'un de leurs modules installait un faux serveur MCP dont les descriptions d'outils demandaient aux assistants de code de lire les clés SSH, les identifiants cloud et les fichiers .env.
Les contrôles qui fonctionnent, et leurs limites
| Contrôle | Ce qu'il couvre | Limite |
|---|---|---|
| Provenance vérifiée : éditeurs officiels, noms en DNS inversé dans le MCP Registry | Usurpation et typosquatting | Un éditeur légitime peut être compromis (LiteLLM) |
| Signature : model signing v1.0 de l'OpenSSF (Sigstore) et attestations de build signées | Altération entre l'éditeur et vous | Une signature faite avec un jeton volé reste valide |
| AI-BOM ou ML-BOM (CycloneDX, SPDX 3.0) | Savoir quel modèle, quel jeu de données et quelle version de paquet tourne où | N'est utile que s'il est tenu à jour |
| Versions figées, lockfiles et empreintes | Versions malveillantes éphémères et vers | Exige un processus pour appliquer vite les vrais correctifs |
| Miroir privé avec liste d'autorisation et analyse | Paquets hallucinés, fichiers pickle, serveurs MCP inconnus | Les scanners peuvent être contournés (nullifAI, skills aux fichiers gonflés) |
| Agents et CLI d'IA en bac à sable | Vol de secrets par des scripts ou des instructions injectées | Tout ce que le bac à sable peut encore atteindre |
| Jetons à moindre privilège et de courte durée, hygiène des secrets en CI | La portée d'un jeton volé (Amazon Q, Nx) | Un compte de mainteneur aux droits légitimes |
L'OpenSSF a publié model signing v1.0 en avril 2025 avec Google, NVIDIA et HiddenLayer : une bibliothèque et une CLI pour signer et vérifier des modèles de tout format avec Sigstore, des certificats autosignés ou des paires de clés. CycloneDX prend en charge un ML-BOM qui recense modèles, jeux de données et leur provenance, et SPDX 3.0 comporte des profils IA et jeux de données. Pour MCP, Invariant Labs recommande d'afficher les descriptions complètes des outils et de figer les serveurs par empreinte, car un serveur peut les modifier après votre approbation.
Le groupe de renseignement sur les menaces de Google a indiqué en septembre 2026 que le voleur DUSTMAKER publie des paquets compromis avec des attestations SLSA Build 3 valides et signées, obtenues grâce à des jetons de CI volés, qui passent les contrôles de confiance automatiques des agents de code. Une signature dit qui a publié ; ce que le code peut faire, seuls la revue et le moindre privilège le limitent.
Cyber Resilience Act : la déclaration est obligatoire
Le Cyber Resilience Act (CRA, règlement (UE) 2024/2847) est entré en vigueur le 10 décembre 2024 ; ses obligations principales s'appliquent au 11 décembre 2027, mais la déclaration a commencé le 11 septembre 2026. Les fabricants de produits comportant des éléments numériques doivent signaler les vulnérabilités activement exploitées et les incidents graves via la plateforme unique de l'ENISA, à destination du CSIRT de leur établissement principal.
| Délai | Quoi envoyer |
|---|---|
| 24 heures | Alerte précoce |
| 72 heures | Notification |
| 14 jours après la disponibilité d'un correctif | Rapport final (vulnérabilité) |
| Un mois | Rapport final (incident grave) |
Pour l'IA, le lien est direct : une dépendance piégée comme les versions de LiteLLM, activement exploitée dans votre produit, déclenche le délai de 24 heures, et sans AI-BOM vous ne pouvez pas savoir en une journée si vous l'avez livrée. Les éditeurs colombiens qui vendent ces produits dans l'UE sont concernés même sans bureau en Europe ; faites confirmer le périmètre et le CSIRT compétent par votre conseil, à l'aide du guide pratique publié par la Commission en juillet 2026. Si des données personnelles sont touchées, la loi colombienne 1581 de 2012 impose aussi de déclarer l'incident à la SIC.
Check-list pour les équipes qui construisent avec l'IA
- Tenez un AI-BOM : chaque modèle, jeu de données, paquet, CLI d'IA, serveur MCP et skill, avec version et responsable.
- Ne chargez des modèles qu'en safetensors, d'éditeurs vérifiés, figés par empreinte.
- Faites passer les installations des personnes et des agents par un registre privé avec liste d'autorisation.
- Figez les dépendances, relisez les changements du lockfile et attendez avant d'adopter une version toute neuve.
- Utilisez des jetons de CI de courte durée et de portée minimale, et exigez une MFA résistante au phishing pour publier.
- Exécutez agents de code et CLI d'IA dans un bac à sable, loin des clés SSH, des identifiants cloud et des fichiers .env.
- Validez serveurs MCP et skills comme un fournisseur : lisez les descriptions, figez les versions et soyez alerté des changements.
- Répétez l'exercice CRA : détecter, décider et envoyer l'alerte précoce sous 24 heures.
La place de Slash : notre activité de cybersécurité couvre l'évaluation, le durcissement et la remédiation des applications web et des API, et lors d'un pentest, les composants d'IA que charge votre application font partie de la surface que nous examinons. À lire aussi : injection de prompt, MCP expliqué et le code agentique.
L'essentiel
- La chaîne d'approvisionnement de l'IA comprend fichiers de modèles, jeux de données, CLI d'IA, serveurs MCP et skills, qui s'exécutent tous avec vos droits.
- Les modèles au format pickle peuvent exécuter du code au chargement : privilégiez safetensors, d'éditeurs vérifiés, figés par empreinte.
- Les modèles inventent des noms de paquets (21,7 % pour les modèles ouverts dans une étude) : contrôlez ce qu'installent les agents.
- Des attaques récentes ont retourné les outils d'IA de la victime contre elle (Nx, TeamPCP) : bac à sable et jetons minimaux.
- Depuis le 11 septembre 2026, le CRA impose une alerte précoce sous 24 heures, y compris aux éditeurs colombiens qui vendent dans l'UE.
Sources
- Data scientists targeted by malicious Hugging Face ML models with silent backdoor
- Malware in ML models hosted on Hugging Face (nullifAI)
- Protect AI and Hugging Face: six months of model scanning
- We Have a Package for You! Package hallucinations by code-generating LLMs
- s1ngularity: postmortem of the Nx supply-chain attack
- Widespread supply chain compromise impacting npm ecosystem
- Shai-Hulud 2.0: ongoing supply chain attack
- Security update, March 2026
- OpenClaw and the AI supply chain risk of agent skills
- From prompting to autonomy: the evolution of adversarial AI
- Launch of model signing v1.0
- Cyber Resilience Act: reporting obligations
Note éditoriale : cette analyse reflète les informations publiques disponibles à la date de révision. Modèles, prix et règles évoluent vite ; chaque donnée tierce renvoie à sa source et nos opinions sont présentées comme telles. Une erreur ? Écrivez à contact@slash-digital.io.
Les questions qu'on nous pose souvent
Qu'est-ce que le slopsquatting ?
Enregistrer des noms de paquets que les modèles d'IA inventent, pour que le code ou les agents qui suivent la suggestion installent le paquet de l'attaquant. Une étude de 2025 a mesuré au moins 5,2 % de paquets inventés pour les modèles commerciaux et 21,7 % pour les modèles open source.
Safetensors suffit-il à rendre un modèle sûr ?
Il supprime l'exécution de code au chargement, principal risque lié au format. Il ne prouve pas que les poids se comportent bien, et les gabarits ou le code livrés avec le modèle doivent aussi être relus.
Les serveurs MCP du registre officiel sont-ils sûrs ?
Le MCP Registry, lancé en préversion en septembre 2025, rattache les noms à des comptes GitHub ou des domaines vérifiés et s'appuie sur une modération communautaire pour bloquer les serveurs malveillants. Il ne remplace pas votre revue : figez les versions et lisez les descriptions. Plus de détails dans MCP expliqué.
Le CRA s'applique-t-il à une entreprise colombienne ?
Si elle met sur le marché de l'UE des produits comportant des éléments numériques, oui : la déclaration s'applique depuis le 11 septembre 2026 et les obligations principales à partir du 11 décembre 2027. Faites valider le périmètre de vos produits par un conseil juridique.
Par où commencer ?
Par l'inventaire (AI-BOM) : sans lui, impossible de savoir en 24 heures si un modèle, un paquet ou un serveur MCP compromis se trouve dans votre produit. Ensuite, figez les versions et isolez vos agents dans un bac à sable.
D'autres analyses à lire
MCP expliqué aux entreprises
Ce qu'est le Model Context Protocol, son évolution jusqu'à la version 2026-07-28, sa gouvernance, sa différence avec A2A et comment l'adopter en sécurité.
Agents et ingénierieLe code avec des agents : comment une équipe logicielle change en 2026
Claude Code, Codex, Copilot et Cursor ouvrent désormais seuls des pull requests. Ce que montrent vraiment benchmarks et études, et ce qui change pour specs, tests et revue.
IA locale et open sourceDu portable au serveur : Ollama, llama.cpp, vLLM et SGLang
Quel moteur pour une personne, une équipe ou la production, les techniques qui multiplient le débit, comment sécuriser et superviser, et quand une API coûte moins.
Et ensuite ?
Mettons-le en production
Racontez-nous votre défi. Nous répondons sous 24 heures ouvrées avec une première lecture honnête : si nous pouvons aider, nous dirons comment ; sinon, nous dirons qui peut.
Je réponds en personne. Pas de formulaires interminables ni de réponses automatiques.