Les skills d'agents ont des dépendances cachées : le risque transitif des chaînes d'approvisionnement
Une étude de juillet 2026 portant sur 1,43 million de skills d'agents montre que l'essentiel du risque de sécurité se cache dans des dépendances transitives qu'un relecteur ne voit jamais en lisant le seul fichier de skill.
De quoi s’agit-il ?
Les skills d’agents — ces bundles réutilisables au format SKILL.md qui empaquettent un savoir-faire opérationnel pour des agents LLM comme Claude Code ou OpenAI Codex — sont généralement examinés comme s’ils étaient des documents autonomes et isolés. Une étude publiée sur arXiv le 1er juillet 2026, Skills Are Not Islands: Measuring Dependency and Risk in Agent Skill Supply Chains (arXiv:2607.01136), soutient que ce modèle mental est faux et de plus en plus dangereux. Les skills sont des artefacts porteurs de dépendances : ils réutilisent d’autres skills, tirent des paquets logiciels (npm, PyPI) et invoquent des services externes (serveurs MCP). Les auteurs ont capturé un instantané d’un registre public de skills le 6 juin 2026 — qui recensait 1 640 440 skills — et analysé les 1 434 046 qu’ils ont pu télécharger (environ 87,4 % du registre), un corpus qui avait été multiplié par environ neuf en trois mois.
Comment ça marche
Le papier construit un outil qui reconstitue le graphe de dépendances complet d’un skill à partir des instructions d’installation et d’usage en langage naturel qu’il contient, produisant une « nomenclature » (bill of materials) pour chaque skill. Appliqué au corpus, il révèle que la surface déclarée d’un skill en dissimule une bien plus large.
Les dépendances directes sont fréquentes mais ne racontent pas toute l’histoire : environ 8,9 % des skills dépendent directement d’un autre skill, 15,5 % d’un paquet et 22,3 % d’un service externe. Le problème vient de l’amplification. Comme les skills réutilisent d’autres skills de façon récursive, un seul skill racine peut hériter d’un inventaire tentaculaire qu’il ne nomme jamais. Les auteurs mesurent des ratios d’amplification transitive/directe atteignant un maximum d’environ 979× au total et 1 754× pour les paquets ; un skill de type orchestrateur ne déclarant que trois dépendances de skills finit par importer 1 938 composants. La réutilisation est aussi très concentrée — un noyau étroit de skills et de paquets sert de socle à tout le reste, avec une inégalité (indice de Gini) encore plus forte que dans l’écosystème npm — de sorte qu’une poignée de nœuds constituent de véritables points uniques de défaillance. Près d’un tiers des skills porteurs de dépendances se trouvent dans des cycles ou des grappes (clusters) de dépendances, où une instruction risquée chez un membre se propage à tout skill qui touche la grappe.
Pourquoi c’est important
La conséquence de sécurité est que lire un document de skill ne suffit pas. Les auteurs rapportent que 60 à 78 % des signaux pertinents pour la sécurité — exécution de charge distante, motifs de code dangereux, texte d’injection de prompt, comportements d’exfiltration d’identifiants et de persistance — sont hérités uniquement via des dépendances transitives, invisibles pour quiconque n’inspecte que le skill racine. Pour un paquet largement réutilisé, la part exclusivement transitive atteint 98 %, et pour les services MCP signalés comme vulnérables elle atteint 93 %. Concrètement : les agents s’exécutent avec de vrais privilèges (E/S fichiers, shell, réseau), les skills sont installés avec peu de contrôle obligatoire, et le code réellement à risque vit souvent à deux ou trois sauts du fichier qu’un humain a approuvé.
Il s’agit d’une étude de mesure, non du signalement d’un nouvel exploit, et les auteurs prennent soin de qualifier leurs motifs de « signaux d’audit » plutôt que de vulnérabilités confirmées. Mais ce n’est pas purement théorique : en cartographiant le graphe, ils ont trouvé des copies de skills malveillants déjà signalés persistant dans des dépôts en aval, et les ont signalées aux développeurs concernés.
Défenses
La leçon centrale est de traiter les skills comme n’importe quelle autre chaîne d’approvisionnement logicielle, et de résoudre le graphe entier avant de faire confiance à la racine.
Résoudre les dépendances avant la relecture, pas seulement le fichier de skill. Toute vérification — humaine ou automatisée — qui s’arrête au SKILL.md racine manquera l’essentiel du risque. Dépliez et inspectez de façon transitive les liens skill-à-skill, paquets et services.
Adopter des manifestes de dépendances typés. Les auteurs recommandent de distinguer explicitement les dépendances de skills, de paquets et de services, chacune avec sa source et sa version, afin que ce qu’un skill tire réellement soit déclarable et auditable plutôt qu’enfoui dans la prose.
Épingler les versions et conserver des lockfiles. Une large part du risque hérité remonte à des instructions d’installation sans épinglage de version. Des enregistrements de type lockfile qui fixent versions, dépôts sources et chemins permettent aux utilisateurs en aval de reproduire et d’auditer le graphe exact qu’ils exécutent.
Exécuter une commande d’audit de dépendances. Par analogie avec npm audit, les gestionnaires de paquets de skills et les registres devraient résoudre le graphe complet et signaler les skills connus comme malveillants, les paquets vulnérables et les services MCP à risque, avec le chemin de preuve — y compris les dépendances atteintes seulement de manière transitive.
Gérer les grappes comme des objets de premier plan. Comme les grappes de skills fortement couplées partagent leur rayon d’impact, traitez l’appartenance à une grappe comme une unité de gouvernance et vérifiez compatibilité et provenance au moment de l’installation.
Statut
| Aspect | Détail |
|---|---|
| Source | Skills Are Not Islands (arXiv:2607.01136), soumis le 1er juillet 2026 |
| Classe | Mesure de chaîne d’approvisionnement des écosystèmes de skills d’agents — risque de dépendances transitives |
| Corpus | 1 434 046 skills (~87,4 % d’un instantané de registre de 1 640 440 skills, 6 juin 2026) |
| Constat clé | 60 à 78 % des signaux pertinents pour la sécurité hérités uniquement via des dépendances transitives |
| Travaux liés | Empoisonnement de chaîne d’approvisionnement des écosystèmes de skills d’agents de code (arXiv:2604.03081) |
| Nature | Résultat de recherche/mesure — pas de CVE ; signaux d’audit, pas d’exploitation confirmée en conditions réelles de chaque cas signalé |