Ataque a la cadena de suministro en NPM: más de 180 paquetes comprometidos

Ataque a la cadena de suministro en NPM: más de 180 paquetes comprometidos

El 16 de septiembre de 2025 se reveló un nuevo ataque a la cadena de suministro que afectó a más de 180 paquetes NPM. La campaña, bautizada como “Shai-Hulud”, se infiltró principalmente a través de la librería popular @ctrl/tinycolor en sus versiones 4.1.1 y 4.1.2, además de más de 40 proyectos adicionales mantenidos por distintos desarrolladores.

El objetivo de los atacantes fue claro: robar credenciales de desarrolladores y pipelines de CI/CD para propagar código malicioso a nuevas versiones y ampliar la superficie de ataque.


¿Cómo funcionó la INFECCIÓN?

Al instalar un paquete comprometido, se ejecutaba código diseñado para exfiltrar llaves y tokens de GitHub, AWS y GCP, entre otros servicios en la nube. Con estas credenciales, los atacantes podían:

  • Publicar nuevas versiones maliciosas en proyectos legítimos.

  • Infiltrarse en pipelines de integración continua (CI/CD).

  • Acceder a repositorios privados y secretos corporativos.

Investigadores reportaron la detección de 34 cuentas de GitHub comprometidas, donde los atacantes creaban un repositorio público llamado “Shai-Hulud” para almacenar un archivo data.json con los datos robados (codificados en doble base64).


¿Quiénes se vieron afectados?

  • Desarrolladores y organizaciones que instalaron las versiones alteradas durante la ventana de exposición.

  • Usuarios finales, de forma indirecta, si consumieron aplicaciones compiladas con dependencias comprometidas.


Paquetes y versiones comprometidas

Entre los proyectos afectados destacan:

  • @ctrl/tinycolor (4.1.1, 4.1.2)

  • Paquetes de CrowdStrike (@crowdstrike/commitlint, @crowdstrike/falcon-shoelace, @crowdstrike/foundry-js, entre otros)

  • Bibliotecas de @nativescript-community y @nstudio

  • Proyectos de @operato, @teselagen, @things-factory, ngx-bootstrap, ngx-toastr, ng2-file-upload, entre muchos más.

La lista completa supera los 180 paquetes NPM, lo que convierte a este incidente en uno de los mayores ataques de cadena de suministro del año.


Impacto empresarial

El ataque no se limita a la distribución de malware:

  • Exposición de credenciales críticas (tokens NPM, secretos de GitHub Actions, llaves en la nube).

  • Posible inserción de código malicioso en aplicaciones empresariales distribuidas a clientes.

  • Compromiso total de máquinas de desarrollo y CI/CD, lo que obliga a tratarlas como equipos infectados.


Medidas de contención recomendadas

  1. Eliminar o degradar las versiones afectadas y reconstruir desde fuentes limpias.

  2. Rotar y revocar todas las credenciales expuestas (npm tokens, llaves en la nube, GitHub PATs).

  3. Auditar registros en busca de instalaciones sospechosas, publicaciones no autorizadas o modificaciones en workflows.

  4. Verificar repositorios de GitHub en busca de “Shai-Hulud” y analizar su historial.

  5. Considerar los equipos y runners comprometidos como totalmente infectados, realizando reinstalación o reimaging.


Lecciones aprendidas: la identidad es el nuevo perímetro

Este ataque confirma que el riesgo en la cadena de suministro ya no depende únicamente de vulnerabilidades conocidas (CVEs), sino de la confianza en identidades y automatización:

  • Una cuenta comprometida puede contaminar miles de descargas semanales.

  • Los atacantes ya no insertan malware solo en el código, sino que se apropian de las credenciales y tokens de CI/CD para propagarlo.


Recomendaciones estratégicas para las organizaciones

Para mitigar este tipo de incidentes, las empresas deberían:

  • Implementar 2FA basado en hardware para mantenedores y pipelines.

  • Usar tokens de corta duración y políticas de expiración.

  • Bloquear por defecto scripts de instalación en CI/CD.

  • Adoptar un periodo de enfriamiento antes de consumir nuevas versiones de librerías.

  • Mantener un SBOM (Software Bill of Materials) actualizado y automatizar blocklists de dependencias maliciosas.


Conclusión

La campaña “Shai-Hulud” demuestra que cada dependencia es código con privilegios de producción en el momento en que entra al pipeline. La resiliencia ya no depende de confiar en la comunidad open-source, sino en reforzar la identidad digital y las políticas de seguridad en la cadena de suministro.

Las organizaciones deben actuar con urgencia: identidad endurecida + políticas de pipeline estrictas son la nueva base de una cadena de suministro segura.

Related Post