système : OPÉRATIONNEL
← retour à tous les hacks
SUPPLY CHAIN MEDIUM NEW

Slopsquatting en 2026 : 127 noms de paquets que les cinq LLM frontières hallucinent à l'identique

Une réplication arXiv du 16 mai 2026 de l'étude USENIX Security '25 sur le slopsquatting montre que les taux d'hallucination baissent sur les modèles frontières — mais identifie 127 paquets fantômes inventés à l'identique par tous les modèles testés, soit une surface d'attaque supply-chain agnostique du modèle.

2026-05-29 // 7 min affects: claude-sonnet-4-6, claude-haiku-4-5, gpt-5.4-mini, gemini-2.5-pro, deepseek-v3.2, pypi, npm

De quoi s’agit-il ?

Le 16 mai 2026, un chercheur indépendant a publié sur arXiv The Range Shrinks, the Threat Remains: Re-evaluating LLM Package Hallucinations on the 2026 Frontier-Model Cohort (2605.17062). L’article réplique la méthodologie de Spracklen et al. (USENIX Security ‘25, arXiv 2406.10279) sur cinq modèles frontières de génération de code publiés entre octobre 2025 et mars 2026 : Claude Sonnet 4.6, Claude Haiku 4.5, GPT-5.4-mini, Gemini 2.5 Pro et DeepSeek V3.2. Le constat est double. Les taux globaux d’hallucination de paquets ont baissé d’environ un ordre de grandeur par rapport à la cohorte 2024, mais la surface d’attaque slopsquatting n’a pas disparu — et elle a pris une nouvelle forme, indépendante du modèle.

Comment ça marche

Le slopsquatting désigne l’enregistrement, sur un dépôt public comme PyPI ou npm, d’un nom de paquet que l’on sait halluciner par un LLM générateur de code. Le terme a été forgé en avril 2025 par Seth Larson (Developer-in-Residence à la Python Software Foundation) et popularisé par Andrew Nesbitt ; c’est un mot-valise entre « AI slop » et « typosquatting ». Lorsqu’un développeur copie un extrait généré qui commence par pip install <nom-halluciné> ou npm install <nom-halluciné>, le paquet enregistré par l’attaquant est installé, et son script post-installation s’exécute dans l’environnement du développeur.

La réplication 2026 a appariné 199 845 prompts Python et JavaScript, interrogé chaque modèle, et validé chaque nom importé contre les listes maîtres en direct de PyPI et npm. Trois résultats se détachent.

D’abord, l’écart entre modèles s’est effondré. Spracklen mesurait 5,2 % d’hallucination sur les LLM commerciaux et 21,7 % sur les open-source en 2024. La cohorte 2026 se situe entre 4,62 % (Claude Haiku 4.5) et 6,10 % (GPT-5.4-mini) — environ une compression d’un facteur dix de l’écart inter-modèles, mais toujours bien au-dessus de zéro.

Ensuite, 127 noms de paquets — 109 sur PyPI, 18 sur npm — ont été inventés à l’identique par les cinq modèles. Un audit mono-modèle ne peut pas les trouver : seule une étude croisée révèle l’intersection. Pour un attaquant, cette intersection constitue la liste de cibles à plus haute valeur, car un paquet malveillant enregistré sous l’un de ces noms est atteignable depuis n’importe lequel des cinq assistants sans ajustement spécifique au modèle.

Enfin, l’article 2026 mesure une asymétrie Python-sur-JavaScript qui inverse l’ordonnancement de 2024, une inversion Haiku-sous-Sonnet dans la famille Anthropic (le petit modèle hallucine moins), et un pic de similarité Jaccard J = 0,343 entre DeepSeek V3.2 et GPT-5.4-mini, évocateur de données d’entraînement partagées.

Le travail initial de Spracklen documentait déjà la précondition qui rend le slopsquatting pratique : 58 % des noms de paquets hallucinés réapparaissent dans des générations répétées, et 43 % apparaissent dans les dix répétitions sur dix. Les hallucinations ne sont pas du bruit ; ce sont des artefacts reproductibles qu’un attaquant peut énumérer à bas coût.

Pourquoi c’est important

La preuve empirique du slopsquatting date de 2023, lorsque Bar Lanyado (Lasso Security) avait enregistré le paquet vide huggingface-cli, un nom que les LLM hallucinaient à la place du correct huggingface_hub[cli]. Le paquet vide a reçu plus de 30 000 téléchargements en trois mois, et est même apparu dans le README d’un dépôt de recherche d’Alibaba.

Le résultat 2026 ajoute une préoccupation structurelle. Même si les modèles frontières convergent vers des taux d’hallucination inférieurs à 7 %, ils semblent converger sur les mêmes noms inventés. Un petit espace stable et multi-modèle de paquets fantômes est précisément le type de surface d’attaque qui passe à l’échelle avec l’adoption : chaque nouvel outil de codage agentique, chaque nouveau workflow de « vibe coding » qui installe automatiquement les dépendances sans relecture humaine, hérite des mêmes 127 noms.

Défenses

Traitez les import/require générés par IA comme une entrée non fiable. Verrouillez chaque dépendance dans un lockfile (requirements.txt avec hashes, package-lock.json, pnpm-lock.yaml, uv.lock) et vérifiez-le contre le registre avant la première installation dans un nouveau projet. Les lockfiles avec hash neutralisent un slopsquat fraîchement enregistré parce que le hash ne correspondra pas.

Refusez les actions d’installation émises par un agent sans allowlisting explicite. Les agents de codage qui peuvent exécuter pip install ou npm install doivent être configurés pour exiger une liste blanche de noms de paquets revue humainement, ou pour n’installer que depuis un miroir interne pré-vérifié.

Utilisez un proxy de registre avec fenêtre de quarantaine. Les proxys internes PyPI/npm (Sonatype Nexus, JFrog Artifactory, Artifact Registry, pypi-mirror interne) peuvent retarder de 7 à 30 jours la visibilité des paquets nouvellement publiés, drainant la plupart des tentatives de slopsquatting avant qu’elles n’atteignent les développeurs.

Lancez un scanner supply-chain sur chaque arbre de dépendances. Des outils comme Socket, Snyk, Phylum et OSV-Scanner signalent les paquets avec scripts d’installation, code obfusqué, enregistrement récent, faible nombre de téléchargements ou anomalies de mainteneur — la signature opérationnelle d’un slopsquat fraîchement enregistré.

Vérifiez les noms de paquets à la main pour toute nouvelle dépendance proposée par un LLM. Une vérification de cinq secondes sur pypi.org/project/<nom> ou npmjs.com/package/<nom> exclut toute la classe. Le dataset publié de l’article Churilov (Zenodo 10.5281/zenodo.19859120) liste les 127 noms fantômes multi-modèles ; traitez-les comme une denylist.

Ne comptez pas sur le modèle pour s’auto-détecter. Spracklen avait constaté que GPT-4 Turbo et DeepSeek pouvaient signaler leurs propres noms hallucinés avec environ 75 % de précision quand on le leur demandait, mais cela laisse passer 25 % — et les utilisateurs adverses ne demandent pas. Les vérifications côté application sont la bonne frontière de confiance.

Statut

ÉlémentRéférenceDateNotes
Étude originaleSpracklen et al., arXiv 2406.10279 / USENIX Security ‘252024-06 (préprint) / 2025-08 (actes)16 LLM, 576 000 échantillons, 19,7 % d’hallucination moyenne
Terme forgéSeth Larson (PSF), Andrew Nesbitt2025-04Mot-valise « slopsquatting »
Réplication 2026Churilov, arXiv 2605.170622026-05-165 modèles frontières, 199 845 prompts, plage 4,62–6,10 %
Ensemble fantôme multi-modèleDataset Churilov (Zenodo)2026-05-16127 noms (109 PyPI, 18 npm) inventés par les 5 modèles
Exploitation observéePoC Bar Lanyado / huggingface-cli2023-0630 000+ téléchargements d’un paquet vide de substitution
Référentiels associésOWASP LLM05 (Improper Output Handling), OWASP LLM03 (Supply Chain), MITRE ATLAS AML.T00102026Sortie non sûre → installation de paquet

La compression des taux d’hallucination entre modèles frontières est une vraie victoire pour les équipes de sécurité d’Anthropic, OpenAI, Google et DeepSeek. L’intersection des 127 paquets partagés rappelle que les modèles alignés convergent dans leurs erreurs autant que dans leurs réponses, et que la couche supply-chain — registres, lockfiles, scanners, proxys — est l’endroit où cette classe d’attaque doit être arrêtée.

Sources