Slopsquatting: cuando la IA inventa un paquete que no existe y un atacante lo convierte en malware

Un desarrollador le pide a su asistente de IA que le ayude a conectar su proyecto Node.js con una base de datos. La IA responde con seguridad: “Instala el paquete con npm install react-codeshift. El desarrollador copia el comando, lo pega en su terminal y presiona Enter. El paquete se instala sin problemas y parece funcionar.

Lo que no sabe es que ese paquete no existía hasta hace unos días. Alguien lo registró con código malicioso después de descubrir que los modelos de IA lo recomiendan con frecuencia. El desarrollador acaba de abrir una puerta trasera en su proyecto, y todo comenzó con una sugerencia amable de su copiloto de código.

Este escenario no es ficticio. En enero de 2026, el investigador Charlie Eriksen de Aikido Security descubrió exactamente este caso: un paquete npm llamado react-codeshift que nunca había existido, pero que la IA inventaba combinando los nombres de dos paquetes reales (jscodeshift y react-codemod). Para cuando Eriksen lo detectó, el nombre ya se había propagado a 237 repositorios en GitHub y recibía intentos de descarga diarios de agentes de IA automatizados, sin que ningún humano lo hubiera plantado deliberadamente.

Bienvenido al mundo del slopsquatting.

¿Qué es el slopsquatting?

El término fue acuñado por Seth Larson, desarrollador de seguridad de la Python Software Foundation. Combina slop (contenido de baja calidad generado por IA) con squatting (registrar un nombre con fines maliciosos).

Para entenderlo, conviene hablar de su primo más viejo: el typosquatting. En ese ataque, alguien registra un paquete con un nombre casi idéntico a uno popular pero con un error tipográfico — por ejemplo, requessts en lugar de requests — y espera a que un desarrollador se equivoque al teclear. La apuesta es sobre un error humano.

El slopsquatting funciona diferente. Aquí el atacante no apuesta a que un humano se equivoque al escribir, sino a que la IA se equivoque al recomendar. Los modelos de lenguaje que usamos para generar código no consultan repositorios en tiempo real; generan texto basándose en patrones estadísticos. A veces producen nombres de paquetes que suenan perfectamente lógicos pero que simplemente no existen. A esto se le llama alucinación de paquetes (package hallucination).

El flujo del ataque es directo: un atacante le hace preguntas de programación a varios modelos, anota los nombres de paquetes que la IA inventa, verifica que no existan en PyPI o npm, y los registra con código malicioso. Después, solo espera. Cuando otro desarrollador le haga una pregunta similar a la IA y ejecute el comando de instalación, el paquete malicioso se descarga automáticamente.

Casos documentados

Aunque no se ha reportado un ataque masivo exitoso usando slopsquatting, los investigadores han demostrado que el vector es completamente funcional.

El experimento de huggingface-cli (2024). El investigador Bar Lanyado de Lasso Security observó que múltiples modelos inventaban un paquete de Python llamado huggingface-cli. La herramienta real se instala con otro comando (pip install -U "huggingface_hub[cli]"), pero los modelos confundían el nombre. Lanyado registró un paquete vacío con ese nombre en PyPI para ver qué pasaba. En tres meses, sin promoción alguna, acumuló más de 30,000 descargas reales. Incluso Alibaba había copiado el comando alucinado en uno de sus repositorios públicos. Si un atacante lo hubiera registrado primero con un payload malicioso, todos esos sistemas habrían sido comprometidos.

react-codeshift (enero 2026). El caso mencionado al inicio. Eriksen rastreó el origen hasta un commit con 47 archivos generados por agentes de IA donde ningún humano revisó el resultado. El paquete se propagó a 237 repositorios, fue traducido al japonés, y recibía descargas diarias de agentes automatizados. Nadie lo plantó. La superficie de ataque se expandió sola.

unused-imports. La IA recomendaba este nombre en lugar del paquete real eslint-plugin-unused-imports. La versión con el nombre corto fue registrada como paquete malicioso y acumulaba más de 200 descargas semanales.

Por qué el problema se está acelerando

El vibe coding — término acuñado por Andrej Karpathy — describe la práctica de dejar que la IA escriba todo el código mientras el desarrollador solo da instrucciones en lenguaje natural, sin revisar cada dependencia. Según GitHub, más del 97% de los desarrolladores han usado herramientas de IA para programar al menos una vez.

Pero el factor que multiplica el riesgo son los agentes de IA autónomos. Herramientas como Claude Code, Codex CLI o Cursor pueden ejecutar pip install o npm install directamente, sin intervención humana. El caso de react-codeshift lo demuestra: no fue un desarrollador quien propagó el paquete a 237 repositorios, fueron agentes ejecutando instrucciones de otros agentes. Una cadena automatizada donde ningún humano revisó el eslabón más débil.

Qué pueden hacer las organizaciones

La solución no es dejar de usar IA — eso sería como abandonar el correo electrónico porque existe el phishing. Lo que se necesita es incorporar verificación en el flujo de trabajo.

Verificar antes de instalar. Antes de ejecutar un comando sugerido por la IA, revisar que el paquete exista en el repositorio oficial. Verificar fecha de creación, descargas, autor y si tiene repositorio de código fuente. Un paquete legítimo rara vez tiene cero historial.

Usar escáneres de dependencias. Herramientas como Socket, Snyk o OWASP dep-scan identifican paquetes sospechosos automáticamente. Integrarlas en el pipeline de CI/CD agrega protección sin frenar el desarrollo.

Implementar lock files y verificación de hashes. Los archivos de bloqueo y la verificación de hashes garantizan que las dependencias sean exactamente las aprobadas previamente.

Aislar agentes de IA. Si se usan agentes autónomos que ejecutan comandos de instalación, configurarlos dentro de contenedores desechables con restricciones de red.

Capacitar a los equipos. Los desarrolladores necesitan saber que las sugerencias de la IA pueden incluir paquetes inexistentes y que copiar y pegar sin verificar tiene consecuencias reales de seguridad.

Reflexión final

El slopsquatting es un ejemplo claro de cómo una debilidad inherente de la IA — las alucinaciones — se convierte en un vector de ataque contra la cadena de suministro de software. No requiere exploits sofisticados ni vulnerabilidades zero-day. Solo paciencia, un modelo que invente un nombre y un registro gratuito en un repositorio público.

Todo lo documentado hasta hoy son pruebas de concepto. Pero la infraestructura para un ataque masivo ya existe: los nombres alucinados son predecibles, los repositorios están abiertos, y millones de desarrolladores copian y pegan sugerencias de IA sin verificarlas.

La pregunta no es si alguien va a explotar este vector a gran escala. La pregunta es si tu organización va a estar preparada cuando suceda.

Referencias



Share via
Copy link