Skip to main content

Compromiso masivo de paquetes npm de día cero: ataque a la cadena de suministro Shai-Hulud

Escrito por
feature open source

15 de septiembre de 2025

0 minutos de lectura

Este incidente sigue en curso y compartiremos actualizaciones a medida que se confirme más información.

Identifica cómo pudo afectarte este ataque con el informe destacado de Zero Day de Snyk.

Shai-Hulud NPM Attack: Remediation with Snyk

TL;DR (17 de sep. de 2025)

El ataque, que comenzó alrededor del 15 de septiembre de 2025 y se conoció como “Shai-Hulud”, ahora se identifica como un malware similar a un gusano que se propaga a través de cientos de paquetes npm comprometidos. El ataque busca robar y exfiltrar credenciales de nube, claves de API y otros secretos almacenados en disco, y transmitirlos mediante un webhook y repositorios públicos de GitHub. También apunta a entornos de CI/CD y usa GitHub Actions para exfiltrar datos y mantener el ataque.

Actualización (16 de sep. de 2025)

El equipo de investigación de seguridad de Snyk está al tanto de este ataque a la cadena de suministro en curso y está investigando, analizando y recopilando activamente información sobre las amenazas y los riesgos derivados de este ataque prolongado a paquetes npm comprometidos. Te recomendamos consultar los hallazgos de los productos de Snyk como fuente actualizada.

Actualización inicial (15 de sep. de 2025)

El 15 de septiembre de 2025, se publicaron varias versiones maliciosas de los paquetes npm ngx-bootstrap y ng2-file-upload, que se retiraron poco después. Esas versiones incluían un postinstall script (bundle.js) que intentaba recopilar tokens de desarrolladores (p. ej., de npm, GitHub y credenciales de nube) y exfiltrar secretos. Considera totalmente comprometido cualquier sistema donde se hayan instalado estas versiones: elimina el paquete, rota todos los secretos desde otra máquina confiable e investiga si hubo movimiento lateral. GitHub publicó avisos de malware para ngx-bootstrap y ng2-file-upload; no hay versiones corregidas de las compilaciones alteradas porque se eliminaron.

Desde los hallazgos iniciales sobre ngx-bootstrap, también se han detectado señales de malware en el paquete npm @ctrl/tinycolor, que se descarga más de 2 millones de veces por semana, y en otros paquetes npm de los espacios de nombres @ctrl y @nativescript-community, además de otros paquetes individuales.

Qué es ngx-bootstrap y por qué es importante

ngx-bootstrap es una popular biblioteca de componentes de Angular que integra componentes de interfaz de usuario de Bootstrap en aplicaciones de Angular. Se usa ampliamente en proyectos de frontend, compilaciones de CI y equipos de desarrolladores, por lo que un script de instalación malicioso puede ejecutarse durante un npm install rutinario y acceder a los equipos de desarrolladores y las credenciales locales. El repositorio oficial está a cargo de Valor Software.

Lo que sabemos hasta ahora

Es probable que haya cientos de paquetes afectados

El ataque avanzó y comprometió otros paquetes además de ngx-bootstrap y @ctrl/tinycolor. También incluye más espacios de nombres de organizaciones, como paquetes de la empresa de ciberseguridad Crowdstrike en el espacio de nombres npm @crowdstrike, entre otros.

La siguiente lista no pretende ser exhaustiva, sino servir de referencia. Siempre recomendamos consultar los productos, los resultados de análisis y los informes de Snyk para obtener una lista completa y actualizada de todos los paquetes y versiones maliciosos.

Puedes encontrar más paquetes afectados en nuestra página de paquetes comprometidos de la Base de datos de vulnerabilidades.

Paquete y versiones de ngx-bootstrap afectados

Informes de la comunidad documentaron que las siguientes versiones de ngx-bootstrap contenían el hook malicioso postinstall, que ejecutaba bundle.js:

  • 20.0.4, 20.0.5, 20.0.6

  • 19.0.3

  • 18.1.4

Además, según los informes, 20.0.3 contenía bundle.js, pero sin una declaración postinstall. El mismo informe señala que las versiones afectadas se retiraron de npm poco después de su detección.

Nota: Al momento de redactar este artículo, la página del paquete en npm solo muestra las versiones actuales no afectadas; las maliciosas se despublicaron.

Los informes de la comunidad también señalaron que ng2-file-upload “parecía estar afectado”, pero hay pocos detalles. Mantente al tanto de los árboles de dependencias que incluyan paquetes de Valor Software y valida las versiones instaladas.

Cronología (UTC)

  • 2025-09-15 — Se publica un informe de la comunidad en valor-software/ngx-bootstrap que identifica postinstall/bundle.js malicioso en las nuevas versiones; menciona intentos de exfiltración de tokens y que las versiones afectadas se retiraron de npm.

  • 2025-09-15 — La base de datos de avisos de GitHub publica GHSA-6m4g-vm7c-f8w6 para ngx-bootstrap (“Malware”), con instrucciones para considerar comprometidos los equipos donde se haya instalado.

(Actualizaremos esta información cuando surjan nuevos hechos verificables de los encargados del mantenimiento o los registros de paquetes.)

Evaluación del impacto

  • ¿Quiénes están afectados? Desarrolladores, agentes de CI y endpoints que instalaron alguna de las versiones enumeradas o las descargaron como dependencias transitivas durante el período en que estuvieron disponibles.

  • ¿Qué podría quedar expuesto? Secretos y tokens del entorno de desarrollo (npm, GitHub) y, posiblemente, credenciales de nube (AWS/GCP/etc.), según el comportamiento descrito en bundle.js.

  • También se atribuye un indicador de compromiso (IoC) a un nuevo flujo de trabajo de GitHub Actions llamado shai-hulud, creado por el malware.

  • Gravedad: Crítica (ejecución de código malicioso durante la instalación; robo y exfiltración de credenciales). El aviso de GitHub indica explícitamente que se debe responder a un compromiso total.

¿Cómo detectar malware de día cero en npm con Snyk?

Snyk incluye un informe de Zero Day en el panel de la aplicación Snyk, llamado Shai-Hulud npm supply chain attack - Sep 2025.

Si tienes un plan Enterprise, puedes usar esta vista para filtrar el informe y seleccionar el ataque de malware de día cero de npm que corresponda o los CVE específicos que quieras rastrear. Así obtendrás una vista del impacto en todo el sistema para estas dependencias de tinycolor, ngx-bootstrap u otras, en tus aplicaciones y repositorios de código monitoreados.

Está abierto un menú desplegable titulado «Vulnerabilidad de día cero» que muestra una lista de vulnerabilidades. Uno de los elementos, «Ataque a la cadena de suministro de npm Shai-Hulud: sep. de 2025», está marcado.

Guía de detección y clasificación

  1. Identifica rápidamente la exposición

    • Comprueba si tu entorno descargó versiones afectadas:

      • npm ls ngx-bootstrap (por proyecto)

      • Revisa los archivos de bloqueo (package-lock.json, pnpm-lock.yaml, yarn.lock) en busca de ngx-bootstrap@18.1.4, 19.0.3, 20.0.4–20.0.6 y toma nota de las instalaciones realizadas a partir del 2025-09-15.

    • Revisa node_modules/ngx-bootstrap/package.json para buscar una entrada postinstall y busca un archivo bundle.js en la raíz del paquete si mantienes archivos o cachés de proveedores.

  2. Detén la ejecución de scripts durante la respuesta al incidente

    • Reinstala con los scripts desactivados para evitar que se ejecuten otros hooks del ciclo de vida:

      • npm ci --ignore-scripts o npm install --ignore-scripts

      • También puedes establecer ignore-scripts=true en .npmrc

  3. Revisiones forenses

    • Revisa las conexiones salientes de los agentes de compilación y los equipos de desarrolladores durante los períodos de instalación.

    • Audita GitHub (listas de tokens de acceso, registros de seguridad recientes), los tokens de npm y el uso de credenciales de proveedores de nube para detectar anomalías. Audita GitHub Actions.

    • Según las instrucciones del aviso de GitHub, considera comprometido cualquier equipo donde se haya instalado una versión afectada.

Contención y corrección inmediatas

  1. Elimina las versiones afectadas

    • Elimina node_modules y los archivos de bloqueo que hagan referencia a versiones maliciosas; vuelve a instalar versiones fijadas y confiables.

    • Limpia los registros privados, las cachés y los artefactos que aún puedan contener los archivos tar maliciosos.

  2. Rota los secretos desde una máquina limpia

    • GitHub: revoca los tokens de acceso personal y las claves SSH; rota los tokens de alcance granular y revisa las autorizaciones de aplicaciones y dispositivos OAuth.

    • npm: revoca los tokens del registro.

    • Nubes (AWS/GCP/etc.): rota las claves de acceso y las claves de cuentas de servicio, e invalida las credenciales de larga duración.

  3. Vuelve a compilar e implementar

    • Después de rotar las credenciales, vuelve a compilar desde entornos limpios con los scripts del ciclo de vida desactivados inicialmente; luego, vuelve a activarlos según sea necesario.

  4. Comunicación con usuarios y organizaciones

    • Si distribuyes software compilado durante ese período, avisa a los equipos que dependen de él y recomienda actualizarlo o volver a compilarlo.

Sobre los ataques a la seguridad de la cadena de suministro

Este incidente se suma a otros incidentes de seguridad recientes de este tipo. Ya hemos visto ataques a CI y a cuentas de responsables de mantenimiento que permitieron secuestrar versiones:

Protege tu cadena de suministro con Snyk

Los problemas de seguridad de la cadena de suministro afectaron al 87 % de las personas encuestadas. Protege la tuya con Snyk.

Leer más

feature insights context
Blog

Los ataques autónomos ya están aquí. La defensa debe estar a su altura.

Los atacantes autónomos están reduciendo el tiempo disponible para defenderse. Descubre cómo el descubrimiento, la corrección, la validación y la prevención continuos pueden ayudar a los equipos de seguridad a seguirles el ritmo.

Blog

Evo ADS Govern Agent Behavior ya está disponible: controla el uso de MCP

Evo ADS Govern Agent Behavior ya está disponible, comenzando con MCP Governance. Descubre, aprueba, monitorea, registra y bloquea el uso de servidores MCP en los principales agentes de programación con IA.

illustration hero ai
Blog

El huracán de la IA ha llegado

La IA está acelerando por igual la creación de software y los ciberataques. Los líderes deben proteger los agentes y el código desde el inicio, aplicar controles en tiempo de ejecución y validar las defensas de forma independiente.