Skip to main content
Blog
Blog Attacks

El efecto bola de nieve: cómo Mini Shai-Hulud convierte npm en una red de distribución de gusanos

Mini Shai-Hulud convirtió paquetes npm en un bucle de robo de credenciales. Así se propagó la ola de AntV y qué deben vigilar los equipos.

May 19, 2026 7 min read
Banner oscuro de cside que muestra un ataque de cadena de suministro tipo gusano en npm
Tabla de Contenidos

TL;DR: el gusano npm Mini Shai-Hulud

Mini Shai-Hulud es una advertencia sobre cómo se propaga un compromiso de npm después de la primera publicación maliciosa. El atacante no necesita comprometer cada aplicación aguas abajo directamente. Necesita una cuenta de mantenedor, una ruta de CI o un punto de ejecución durante la instalación que exponga credenciales.

Al 2026-05-19, Socket reportó 639 versiones de paquetes comprometidas en 323 paquetes únicos en una ola de Mini Shai-Hulud concentrada alrededor del ecosistema @antv. El conjunto afectado incluía paquetes de gráficos, grafos, mapas y wrappers de React usados por equipos de ingeniería que quizá nunca consideran esas dependencias como críticas para la seguridad.

El patrón es el problema real. npm es útil porque centraliza publicación, escaneo y retirada. Esa misma centralización se vuelve peligrosa cuando scripts de ciclo de vida, publicación confiable y credenciales de mantenedores se abusan para convertir paquetes en una red de distribución.

¿Poco tiempo? Consulta el bloqueo de Magecart y skimmers en el navegador de cside. Cubre todo lo de abajo en un solo despliegue.

Qué ocurrió en la ola de AntV

La ola de AntV usó un punto de entrada habitual en npm: ejecución durante la instalación. El análisis de Socket describe un payload index.js en la raíz que modificaba package.json para ejecutarse durante preinstall.

Eso importa porque npm install, pnpm install y yarn install no son pasos pasivos de descarga. Los scripts de ciclo de vida de paquetes pueden ejecutar código antes de que un desarrollador revise el contenido del paquete o ejecute la aplicación.

El payload estaba muy ofuscado. Socket reportó que usaba decodificación de strings en tiempo de ejecución, exfiltración cifrada, uso de la API de GitHub, uso de la API del registro npm y una ruta HTTPS fija de exfiltración. El objetivo era recopilar credenciales que permitieran al malware volver a publicar, no solo ejecutarse una vez.

Cómo Mini Shai-Hulud crea el efecto bola de nieve

El payload apunta a entornos de desarrolladores y CI/CD porque esos entornos tienen poder de publicación. Una aplicación de navegador puede necesitar solo un paquete de gráficos, pero la máquina o el workflow que lo instala también puede tener acceso a npm, GitHub, AWS, Kubernetes, Vault, SSH, Docker o credenciales de bases de datos.

Los objetivos de credenciales incluyen:

  • Tokens de GitHub y material OIDC de GitHub Actions
  • Tokens de publicación npm
  • Credenciales de AWS y metadatos de instancia
  • Archivos de cuentas de servicio de Kubernetes
  • Tokens de HashiCorp Vault
  • Archivos de autenticación de Docker
  • Claves SSH y claves privadas
  • Cadenas de conexión a bases de datos

Cuando el malware encuentra credenciales npm utilizables, puede enumerar los paquetes que la víctima puede mantener, modificar tarballs de paquetes, añadir un hook de instalación, incrementar versiones y volver a publicar paquetes comprometidos bajo una identidad de mantenedor confiable.

Diagrama que muestra a Mini Shai-Hulud propagándose mediante credenciales npm comprometidas y paquetes republicados

Por qué importan Axios y TanStack

La ola de AntV no ocurrió de forma aislada. El ecosistema npm ha visto una serie de incidentes en los que atacantes abusan de mantenedores confiables, dependencias transitivas y automatización de CI/CD.

El análisis de Axios de Datadog describe cómo un atacante secuestró una cuenta de mantenedor de Axios el 2026-03-31 y publicó versiones maliciosas de axios que añadían la dependencia troyanizada plain-crypto-js. Esa dependencia descargaba y ejecutaba un troyano de acceso remoto multiplataforma durante la instalación.

Diagrama que muestra la cadena del compromiso de Axios en npm mediante una dependencia troyanizada

El análisis de TanStack de Endor Labs muestra otra lección. TanStack usaba publicación confiable OIDC de npm, que elimina los tokens npm estáticos y de larga duración. Aun así, el atacante obtuvo una ruta de publicación válida mediante las mecánicas del repositorio y del workflow. El resultado fueron versiones maliciosas en todo el namespace de TanStack con una procedencia de apariencia válida.

Ninguna herramienta rota por sí sola explica el patrón. El hilo común es la cantidad de autoridad concentrada en los entornos de desarrollo y los workflows de release.

npm es a la vez una herramienta defensiva y una ruta de ataque

npm ofrece a los defensores un lugar central para inspeccionar paquetes, marcar malware, deprecar releases y revocar tokens. Ese modelo centralizado es mejor que descargas opacas y aisladas.

Pero npm también ofrece a los atacantes una capa central de distribución. Si un paquete confiable publica una versión maliciosa, los usuarios aguas abajo pueden obtenerla mediante instalaciones normales, actualizaciones de lockfile, rebuilds de CI o resolución de dependencias transitivas.

Función de npmValor defensivoValor para el atacante
Registro centralPermite escaneo, avisos y retiradaDa amplia distribución a las versiones maliciosas
Scripts de ciclo de vidaSoportan la configuración de paquetes y builds nativosEjecutan código del atacante durante la instalación
Cuentas de mantenedorPermiten publicar rápidoConvierten una identidad comprometida en muchos paquetes envenenados
Publicación confiableReduce la exposición de tokens de larga duraciónPuede abusarse si se compromete el workflow o el límite de confianza

La lección es reducir la confianza automática en cada etapa donde se ejecuta código, no abandonar npm.

Qué deben hacer los equipos ahora

Empieza por el entorno de build y desarrollo. Cualquier máquina o runner de CI que haya instalado un paquete afectado debe tratarse como expuesto hasta revisar las credenciales.

  1. Revisa los lockfiles y los logs del gestor de paquetes para detectar versiones afectadas instaladas el 2026-05-19 o después
  2. Rota las credenciales de npm, GitHub, cloud, Vault, SSH, Docker y bases de datos accesibles desde esos sistemas
  3. Audita los paquetes propiedad de los mantenedores para detectar versiones inesperadas, hooks de instalación o dependencias git añadidas
  4. Usa instalaciones estrictas con lockfile como npm ci, pnpm install --frozen-lockfile o yarn install --frozen-lockfile
  5. Desactiva los scripts de ciclo de vida donde sea práctico con --ignore-scripts, especialmente en jobs de CI que no necesitan builds nativos
  6. Añade periodos de espera para dependencias o puertas de revisión para que las versiones de paquetes recién publicadas no entren automáticamente en producción
  7. Monitoriza el tráfico saliente desde CI y las estaciones de los desarrolladores en busca de rutas sospechosas de exfiltración

Estos controles reducen la probabilidad de que un paquete malicioso se convierta en un incidente de publicación en todos los paquetes que mantiene un desarrollador.

Dónde encaja cside

cside no es un escáner del registro npm y no reemplaza el endurecimiento de CI/CD. Sigues necesitando escaneo de dependencias, lockfiles, higiene de tokens y controles estrictos de release.

cside cubre la parte de la cadena de suministro que ocurre en el runtime del navegador. Muchos sitios en producción cargan scripts de terceros, SDKs, payloads de tag managers, paquetes de analítica y código entregado dinámicamente que nunca se comporta como una dependencia npm fija. Un paquete o proveedor puede parecer legítimo en el momento del build y aun así entregar comportamiento riesgoso al navegador más tarde.

cside monitoriza el comportamiento de los scripts mientras se ejecutan en el navegador del usuario. Eso incluye cambios de scripts, acceso inesperado a datos, intentos sospechosos de exfiltración y actividad del lado del navegador que los escáneres de dependencias no pueden ver una vez que el código ya está en producción.

La defensa correcta es por capas: protege la ruta del registro, endurece la CI, rota los secretos rápido y monitoriza el comportamiento en runtime donde los usuarios realmente ejecutan el código.

Más lecturas en cside

Simon Wijckmans
Founder & CEO

Founder and CEO of cside. Previously a product manager on Cloudflare Page Shield (now Cloudflare Client-Side Security). Co-chair of the W3C Anti-Fraud Community Group and a Forbes 30 Under 30 honoree. Building accessible security against client-side attacks, web security is not an enterprise-only problem.

FAQ

Frequently Asked Questions

Mini Shai-Hulud es un patrón de malware de cadena de suministro que abusa de rutas de publicación confiables, scripts de instalación y credenciales robadas de desarrolladores para infectar más paquetes.

Socket reportó 639 versiones de paquetes comprometidas en 323 paquetes únicos el 2026-05-19, principalmente en el ecosistema AntV. La escala importa porque los equipos aguas abajo pueden descargar versiones maliciosas automáticamente mediante actualizaciones normales de dependencias.

No. cside complementa los escáneres de dependencias y los controles de CI al monitorizar el comportamiento de scripts en tiempo de ejecución del navegador, cambios de scripts y rutas de exfiltración de datos que las herramientas de build no ven.

Monitoriza y protege tus scripts de terceros

Gain full visibility and control over every script delivered to your users to enhance site security and performance.

Empieza gratis o prueba Business con una versión de prueba de 14 días.

Interfaz del panel de cside que muestra la monitorización de scripts y el análisis de seguridad
Related Articles
Reservar una demo

¿Quieres verlo en detalle con un ingeniero?

Treinta minutos, sobre tu propio sitio. Nada de diapositivas.

Te enseñaremos:

Qué scripts de terceros se están ejecutando ahora mismo en tu sitio
En qué punto estás con los requisitos 6.4.3 y 11.6.1 de PCI DSS
Qué parte de tu tráfico son bots y agentes de IA

¿Prefieres mandarnos una pregunta?

Buscando huecos libres…

Solo humanos de verdad. Nos daríamos cuenta.

¿Problemas para reservar? Abrir el calendario en una pestaña nueva

¿Qué quieres resolver?

Cuéntanoslo en una línea y te responderemos con algo útil, no con un discurso genérico.

Solemos ayudar con:

Ver qué scripts de terceros se ejecutan en tu sitio
Evidencias para PCI DSS 6.4.3 y 11.6.1
Bots, agentes de IA y robo de cuentas

¿Prefieres reservar una hora? Elegir un hueco