sistema: OPERATIVO
← volver a todos los hacks
SUPPLY CHAIN MEDIUM NEW

Slopsquatting en 2026: 127 nombres de paquetes que los cinco LLM frontera alucinan de forma idéntica

Una replicación en arXiv del 16 de mayo de 2026 del estudio de slopsquatting de USENIX Security '25 muestra que las tasas de alucinación bajan en los modelos frontera — pero identifica 127 paquetes fantasma inventados de forma idéntica por todos los modelos probados, una superficie de ataque de supply chain independiente del modelo.

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

¿Qué es esto?

El 16 de mayo de 2026, un investigador independiente publicó en arXiv The Range Shrinks, the Threat Remains: Re-evaluating LLM Package Hallucinations on the 2026 Frontier-Model Cohort (2605.17062). El trabajo replica la metodología de Spracklen et al. (USENIX Security ‘25, arXiv 2406.10279) sobre cinco modelos frontera de generación de código publicados entre octubre de 2025 y marzo de 2026: Claude Sonnet 4.6, Claude Haiku 4.5, GPT-5.4-mini, Gemini 2.5 Pro y DeepSeek V3.2. El titular es doble. Las tasas globales de alucinación de paquetes han caído aproximadamente un orden de magnitud respecto a la cohorte de 2024, pero la superficie de ataque del slopsquatting no ha desaparecido — y ha adoptado una nueva forma, agnóstica al modelo.

Cómo funciona

El slopsquatting es el registro, en un repositorio público como PyPI o npm, de un nombre de paquete que se sabe que un LLM generador de código aluciona. El término fue acuñado en abril de 2025 por Seth Larson (Developer-in-Residence en la Python Software Foundation) y popularizado por Andrew Nesbitt; es un acrónimo de «AI slop» y «typosquatting». Cuando un desarrollador copia un fragmento generado que empieza por pip install <nombre-alucinado> o npm install <nombre-alucinado>, se instala el paquete registrado por el atacante y su script de post-instalación se ejecuta en el entorno del desarrollador.

La replicación de 2026 emparejó 199 845 prompts en Python y JavaScript, consultó a cada modelo y validó cada nombre importado contra las listas maestras vivas de PyPI y npm. Destacan tres hallazgos.

En primer lugar, la dispersión entre modelos se ha colapsado. Spracklen medía un 5,2 % de alucinación en los LLM comerciales y un 21,7 % en los de código abierto en 2024. La cohorte de 2026 se sitúa entre el 4,62 % (Claude Haiku 4.5) y el 6,10 % (GPT-5.4-mini) — una compresión aproximada por diez del rango entre modelos, pero todavía muy por encima de cero.

En segundo lugar, 127 nombres de paquetes — 109 en PyPI y 18 en npm — fueron inventados de forma idéntica por los cinco modelos. Una auditoría sobre un solo modelo no puede encontrarlos: solo un estudio cruzado revela esta intersección. Para un atacante, esa intersección es la lista de objetivos de máximo valor, porque un paquete malicioso registrado bajo uno de esos nombres queda al alcance de cualquiera de los cinco asistentes sin necesidad de ajuste específico por modelo.

En tercer lugar, el trabajo de 2026 documenta una asimetría Python-sobre-JavaScript que invierte el orden de 2024, una inversión Haiku-por-debajo-de-Sonnet dentro de la familia Anthropic (el modelo más pequeño aluciona menos) y un pico de similitud de Jaccard de J = 0,343 entre DeepSeek V3.2 y GPT-5.4-mini, sugerente de datos de entrenamiento compartidos.

El trabajo original de Spracklen ya documentaba la condición previa que hace al slopsquatting practicable: el 58 % de los nombres alucinados reaparecen en generaciones repetidas, y el 43 % aparece en las diez repeticiones sobre diez. Las alucinaciones no son ruido; son artefactos reproducibles que un atacante puede enumerar a bajo coste.

Por qué importa

La prueba empírica del slopsquatting llegó en 2023, cuando Bar Lanyado (Lasso Security) registró el paquete vacío huggingface-cli, un nombre que los LLM alucinaban en lugar del correcto huggingface_hub[cli]. El paquete vacío recibió más de 30 000 descargas en tres meses, e incluso apareció en el README de un repositorio de investigación de Alibaba.

El resultado de 2026 añade una preocupación estructural. Aunque los modelos frontera converjan hacia tasas de alucinación por debajo del 7 %, parecen converger en los mismos nombres inventados. Un espacio pequeño, estable y multi-modelo de paquetes fantasma es precisamente el tipo de superficie de ataque que escala con la adopción: cada nueva herramienta de coding agéntico, cada nuevo flujo de «vibe coding» que instala dependencias automáticamente sin revisión humana, hereda los mismos 127 nombres.

Defensas

Trate los import/require generados por IA como entrada no confiable. Bloquee cada dependencia en un lockfile (requirements.txt con hashes, package-lock.json, pnpm-lock.yaml, uv.lock) y verifíquelo contra el registro antes de la primera instalación en un proyecto nuevo. Los lockfiles con hash neutralizan un slopsquat recién registrado porque el hash no coincidirá.

Rechace las acciones de instalación emitidas por un agente sin allowlist explícita. Los agentes de coding capaces de ejecutar pip install o npm install deben configurarse para exigir una lista blanca de nombres de paquetes revisada por humanos, o para instalar únicamente desde un mirror interno previamente verificado.

Utilice un proxy de registro con ventana de cuarentena. Los proxys internos PyPI/npm (Sonatype Nexus, JFrog Artifactory, Artifact Registry, pypi-mirror interno) pueden configurarse para retrasar entre 7 y 30 días la visibilidad de los paquetes recién publicados, drenando la mayoría de los intentos de slopsquatting antes de que lleguen a los desarrolladores.

Ejecute un escáner de supply chain sobre cada árbol de dependencias. Herramientas como Socket, Snyk, Phylum y OSV-Scanner marcan los paquetes con scripts de instalación, código ofuscado, registro reciente, bajo número de descargas o anomalías del mantenedor — la firma operativa de un slopsquat recién registrado.

Verifique los nombres de paquetes a mano para cualquier dependencia nueva propuesta por un LLM. Una comprobación de cinco segundos en pypi.org/project/<nombre> o npmjs.com/package/<nombre> descarta toda la clase. El dataset publicado del trabajo de Churilov (Zenodo 10.5281/zenodo.19859120) lista los 127 nombres fantasma multi-modelo; trátelos como una denylist.

No dependa de la auto-detección del modelo. Spracklen observó que GPT-4 Turbo y DeepSeek podían señalar sus propios nombres alucinados con una precisión de ~75 % cuando se les preguntaba, pero queda un 25 % que pasa — y los usuarios adversarios no preguntan. Las comprobaciones en la capa de aplicación son la frontera de confianza correcta.

Estado

ElementoReferenciaFechaNotas
Estudio originalSpracklen et al., arXiv 2406.10279 / USENIX Security ‘252024-06 (preprint) / 2025-08 (actas)16 LLM, 576 000 muestras, 19,7 % de alucinación media
Acuñación del términoSeth Larson (PSF), Andrew Nesbitt2025-04Acrónimo «slopsquatting»
Replicación 2026Churilov, arXiv 2605.170622026-05-165 modelos frontera, 199 845 prompts, rango 4,62–6,10 %
Conjunto fantasma multi-modeloDataset Churilov (Zenodo)2026-05-16127 nombres (109 PyPI, 18 npm) inventados por los 5 modelos
Explotación observadaPoC de Bar Lanyado / huggingface-cli2023-0630 000+ descargas de un paquete vacío sustituto
Marcos asociadosOWASP LLM05 (Improper Output Handling), OWASP LLM03 (Supply Chain), MITRE ATLAS AML.T00102026Salida insegura → instalación de paquete

La compresión de las tasas de alucinación entre modelos frontera es una victoria real para los equipos de seguridad de Anthropic, OpenAI, Google y DeepSeek. La intersección de los 127 paquetes compartidos recuerda que los modelos alineados convergen en sus errores tanto como en sus respuestas, y que la capa de supply chain — registros, lockfiles, escáneres, proxys — es el lugar donde esta clase de ataque debe detenerse.

Sources