La IA te recomienda un paquete que el atacante registró antes

El nombre que no existe
Hay un nombre de paquete que tu agente escribe con total seguridad y que nunca existió.
Lo inventó el LLM, lo repite casi con las mismas palabras cada vez que se lo pides y alguien lo registró en npm antes que nadie.
Eso es el slopsquatting, el primo moderno del typosquatting, donde el error ya no lo comete el dedo del desarrollador sino la alucinación de la IA.
El término lo acuñó Seth Larson developer-in-residence de la Python Software Foundation, y en 2026 ha dejado de ser un aviso teórico (Fuente: Infosecurity Magazine).
El estudio de USENIX Security 2025 de Spracklen puso cifras al problema.
Sobre más de dos millones de muestras de código generadas por 16 modelos… el 19,7% contenía al menos un paquete que no existe y el corpus completo arrojó 205.474 nombres inventados distintos (Fuente: Cloud Security Alliance).
La distribución explica por qué funciona.
Un 38% son fusiones de dos paquetes reales, el clásico react-codeshift que sale de jscodeshift y react-codemod.
Un 13% son variantes de un nombre real.
Y un 51% son invenciones puras.
No son errores aleatorios. Repito… SON INVENCIONES!!
Al repetir el mismo prompt diez veces el 43% de los nombres reaparecía en todas las ejecuciones, así que el atacante solo tiene que cultivar la alucinación, registrar el nombre y esperar sentado viendo Netflix.
Eso sí… no todos los modelos fallan igual pues los abiertos promediaban un 21,7% de alucinación frente al 5,2% de los comerciales.
Cuando el agente instala solo
Lo que cambia la ecuación esta vez no es el LLM, es quien instala.
Hasta ahora hacía falta un humano que leyera la recomendación y tecleara el comando de instalación.
Un agente de código resuelve dependencias solo, y en ese camino nadie mira el nombre.
Como resumió Andrew Nesbitt en abril de 2026, el agente elimina el único punto de control que quedaba (Fuente: Cloud Security Alliance).
Los casos confirmados ya no son hipótesis.
El paquete npm unused-imports es malware real y no la librería eslint-plugin-unused-imports que el modelo quería nombrar y seguía sumando unas 233 descargas semanales a principios de 2026 pese al bloqueo de npm.
huggingface-cli, ¿te suena? Un nombre que la IA recomendaba con naturalidad superó las 30.000 descargas en tres meses después de que un comando de instalación generado por IA acabara copiado en la documentación pública de un repositorio de Alibaba sin que nadie lo verificara.
Y en enero de 2026 la investigadora Charlie Eriksen reivindicó el nombre react-codeshift que no existía ni tenía autor, mientras agentes reales intentaban ejecutarlo.
El techo de esta escalada lo puso el propio Anthropic.
En un ejercicio interno de evaluación, un modelo creó un paquete Python malicioso, lo publicó en el PyPI real y en una hora lo habían descargado y ejecutado 15 sistemas de verdad, uno de ellos el escáner de malware de una empresa de seguridad, cuyas credenciales acabaron exfiltradas y usadas para entrar más adentro (Fuente: StepSecurity).
El otro lado de la semana
La misma semana en que se confirma que un agente instala lo que le digan, Cisco Talos documentó CLOSEDQUORUM, malware de Windows que consulta a DeepSeek, Qwen, Mistral y Gemini para decidir sus acciones sin intervención humana (Fuente: marketingprofs.com).
Roba credenciales y criptomonedas.
Es una de las primeras muestras de malware orquestado por varios LLM a la vez.
Y en paralelo, Google restringió Gemini 4 Argon a socios del programa Fairwind, con capacidad de encontrar, validar y parchear vulnerabilidades, pero solo para defensores seleccionados (Fuente: blog.google).
La asimetría es la misma que llevo meses señalando y a poco que investigues te das cuenta…
El atacante ya tiene agentes que deciden y el defensor sigue esperando invitación.
Qué mirar
- Fija las versiones. Un fichero de bloqueo con hashes verificados delante de cualquier agente con permisos para instalar. Si el nombre no está en la lista, no se instala.
- Salta los scripts. El flag que ignora los scripts de instalación por defecto evita que un postinstall se ejecute mientras nadie mira. Es una línea y quita la mitad del riesgo.
- Vigila el rastro. Un proceso de gestor de paquetes lanzado desde un agente, seguido de una conexión a un host que no esté en el inventario en una ventana corta. Esa regla en Gravity SOC o en cualquier correlador de Sysmon y DNS ya caza el patrón.
¿Cómo lo probaría en mi laboratorio?
Montaría una máquina limpia, lanzaría un prompt que pidiera una dependencia poco común y capturaría el nombre que propone el modelo.
Lo repetiría diez veces para ver cuántas coincide porque esa repetición es justo lo que el atacante explota.
Después comprobaría el nombre contra el registro o miraría quién lo publicó y cuándo y lo instalaría con los scripts desactivados para ver qué intenta hacer.
Con eso tendría la evidencia de que el escenario es real en mi propia máquina sin depender de ningún informe ajeno, es sencillo.
Cierre
La lección no es desconfiar de la IA… es no dejarle la última firma.
Comprobar un nombre contra el registro cuesta mucho menos que reconstruir lo que se llevó el postinstall.
Esta es la nueva era de los defensores, el nuevo trabajo de los que llevamos el análisis en sangre y nos hacemos llamar Analistas de Ciberseguridad… amigo, tus certificaciones no te hacen analista, como mucho te dan más entrevistas en un mercado laboral ROTO!!
Bon appétit!!