~8 minutes
Cet article fait partie de la série OWASP Agentic Skills Top 10. Retrouvez l’introduction et le plan complet sur la page de la série.
La barrière d’entrée pour publier sur ClawHub en janvier 2026 se résumait à un fichier SKILL.md et un compte GitHub vieux d’une semaine. Sans signature de code, sans vérification d’identité des publishers, ClawHub est devenu le premier registre d’agents IA empoisonné systématiquement à grande échelle.
AST02 couvre l’ensemble des attaques supply chain qui exploitent l’absence de contrôles de provenance dans les registres et canaux de distribution de skills.
Description du risque
Les registres de skills manquent des contrôles de provenance courants dans les écosystèmes matures (npm, PyPI, Cargo). Les attaquants exploitent cette absence via :
- Upload de masse coordonné (registry flooding)
- Dependency confusion (empoisonnement de dépendances imbriquées)
- Account takeover (compromission de comptes d’auteurs de confiance)
- Config-file hijacking (fichiers de configuration qui deviennent des vecteurs d’exécution)
La spécificité des skills : un skill compromis hérite du contexte d’exécution complet de l’agent runtime, y compris toutes ses credentials ; un package classique s’exécuterait dans un sandbox.
Quelques incidents récents
| Incident | Date | Impact |
|---|---|---|
| ClawHub flooding | Jan 2026 | Aucun scanning automatisé. Publishers pouvaient uploader un nombre illimité de packages |
| Claude Code CVE-2025-59536 / CVE-2026-21852 | Fév 2026 | Les fichiers de config de repo (.claude/settings.json, hooks) deviennent des chemins d’exécution. Un git clone suivi de l’ouverture déclenche du RCE + exfiltration de clés API |
| Dependency confusion | Fév 2026 | Le package.json d’un skill tire une dépendance typosquattée (ex: yutube-dl-core) qui contient le vrai payload. Le skill de surface semble propre |
| Fake “Summarize YouTube Videos” | Fév 2026 | Snyk documente un skill qui importe yutube-dl-core au lieu d’un package légitime. La dépendance installe un backdoor |
Scénarios d’attaque
1. Registry flooding
Upload coordonné de centaines de skills malveillants pour noyer les alternatives légitimes dans les résultats de recherche. La campagne ClawHavoc a déployé 341 skills en 3 jours sur 12 comptes.
2. Dependency confusion
L’attaquant empoisonne une dépendance imbriquée, pas le skill de premier niveau. Les scans de surface passent, car le SKILL.md est propre. Le payload se trouve dans un requirements.txt ou package.json embarqué.
3. Config-file hijacking
Des instructions d’exécution sont embarquées dans les fichiers de configuration du repository (hooks, settings MCP, overrides d’environnement). L’exécution se déclenche à l’ouverture du projet, avant toute interaction utilisateur.
4. Maintainer account takeover
Compromission du compte d’un auteur de skill de confiance. L’attaquant pousse une version backdoorée. Les utilisateurs qui font confiance à l’auteur mettent à jour sans vérifier.
Mitigations
- Implémenter un tracking de provenance : lier chaque skill publié à une identité de signature de code vérifiée.
- Exiger des transparency logs pour toutes les opérations de registre (publish, update, delete), sur le modèle de Certificate Transparency.
- Pinner toutes les dépendances imbriquées par hashes immutables (
sha256:), pas par ranges de versions. - Traiter les fichiers de configuration du repository (hooks,
.claude/settings.json,ANTHROPIC_BASE_URL) comme du code exécutable, pas comme de la simple configuration. - Scanner les arbres de dépendances récursifs, pas seulement les fichiers de skill de premier niveau.
- Supporter un miroir/allowlist interne de skills pour les déploiements d’entreprise.
Mapping OWASP
- LLM03 (Supply Chain)
- ASVS V14.2 (Dependency)
- CWE-494 (Download of Code Without Integrity Check)
Risques liés
- AST01 : Malicious Skills : la supply chain est le mécanisme de distribution
- AST07 : Update Drift : l’absence de mises à jour immutables aggrave le risque
- AST08 : Poor Scanning : scanning insuffisant rate les vulnérabilités supply chain
- AST10 : Cross-Platform Reuse : sécurité incohérente entre plateformes
Quelques références pour aller plus loin
- OWASP AST10 : AST02 (repo officiel)
- Snyk ToxicSkills
- Check Point Research : Claude Code RCE
- SLSA : Supply Chain sous surveillance
✓ À retenir 📌
✓ Les registres de skills n'ont pas encore la maturité des écosystèmes npm ou PyPI. Aucun contrôle de provenance n'existait sur ClawHub lors de ClawHavoc.
✓ Les attaques par dependency confusion ciblent les dépendances imbriquées, pas le skill de surface. Le scan de premier niveau ne suffit pas.
✓ Le hash pinning et les transparency logs sont les deux contrôles prioritaires à mettre en place.
