- Shai Hulud 2.0 vuelve a atacar el ecosistema de npm, infectando paquetes de proyectos importantes como Zapier, ENS Domains, AsyncAPI, PostHog y Postman
- El malware se ejecuta automáticamente durante la instalación para robar secretos de sistemas de desarrolladores y entornos en la nube
- En los sistemas infectados, usa TruffleHog para buscar claves API, tokens, contraseñas y más, y subirlos a repositorios públicos de GitHub
- Este ataque se amplió respecto al anterior e incluye hasta 100 paquetes infectados y una función para borrar archivos del directorio personal si falla la autenticación
- Se trata de un ataque masivo a la cadena de suministro que amenaza el modelo de confianza del ecosistema npm y resalta la necesidad de revisar y rotar los secretos de todos los equipos de desarrollo
Resumen de la campaña Shai-Hulud
- Shai-Hulud es un malware con forma de gusano autorreplicable dentro del ecosistema npm que se propaga rápidamente a través de entornos de desarrollo infectados
- Al infectar un sistema, usa TruffleHog para buscar secretos expuestos como claves API y tokens
- La información recolectada se envía a repositorios públicos de GitHub y luego se publican nuevos paquetes maliciosos en npm para seguir propagándose
- El atacante llamó a esta ofensiva “Second Coming”
- El ataque se reanudó en el momento en que npm había anunciado la revocación de tokens antiguos el 9 de diciembre
Línea de tiempo del ataque
- 27 de agosto: se publica el reporte de la campaña S1ngularity
- 16 de septiembre: ocurre el primer ataque de Shai-Hulud
- 18 de septiembre: se reporta el análisis técnico y el comportamiento del payload
- 24 de noviembre: ocurre el segundo ataque (Second Coming) justo antes de la revocación de tokens de npm
Cambios en la forma del ataque
- En esta ocasión, el ataque instala el runtime Bun mediante el archivo
setup_bun.jsy luego ejecutabun_environment.js - Crea repositorios de GitHub con nombres aleatorios para subir los datos robados
- La cantidad de paquetes objetivo infectados aumentó de 20 a 100
- Si falla la autenticación en GitHub o npm, incluye una función para borrar por completo el directorio personal del usuario
Paquetes infectados
- En total, 492 paquetes de npm fueron infectados, con 132 millones de descargas mensuales
- Principales proyectos afectados: Zapier, ENS Domains, AsyncAPI, PostHog, Postman y Browserbase
- Ejemplos de paquetes:
@zapier/zapier-sdk,@ensdomains/ensjs,@asyncapi/cli,posthog-js,@postman/pm-bin-linux-x64y otros
Filtración de secretos
- El malware sube secretos a repositorios de GitHub con la descripción “Sha1-Hulud: The Second Coming”
- Hasta ahora, se ha confirmado la exposición de más de 26,300 repositorios
Error del atacante
- Algunos paquetes solo incluían
setup_bun.jsy nobun_environment.js, por lo que el gusano no llegaba a ejecutarse por completo - Esto limitó el alcance de la propagación del ataque
Ruta de infección y punto inicial
- La infección inicial comenzó el 24 de noviembre de 2025 a las 03:16:26 GMT+0 en
go-templatey 36 paquetes relacionados con AsyncAPI - Después se propagó a PostHog (04:11:55) y luego a Postman (05:09:25)
- En el repositorio de AsyncAPI CLI se confirmó la presencia de código desplegado tras crear una rama maliciosa
Impacto potencial
- Al ejecutarse automáticamente durante la instalación, puede acceder al entorno local del desarrollador, sistemas de build y credenciales de la nube
- Los secretos robados podrían usarse para comprometer cuentas adicionales y publicar más paquetes maliciosos
- Representa una grave amenaza para la seguridad de la cadena de suministro basada en la confianza del ecosistema npm
Recomendaciones de respuesta de seguridad
- Revisar por completo las dependencias npm relacionadas con Zapier y ENS
- Rotar todos los secretos de GitHub, npm, la nube y CI/CD
- Buscar en GitHub repositorios con la descripción “Sha1-Hulud: The Second Coming”
- Deshabilitar los scripts
postinstallde npm en entornos de CI - Fijar versiones de paquetes y activar MFA, además de bloquear paquetes maliciosos con herramientas como Safe-Chain
Conclusión
- Shai-Hulud 2.0 es un nuevo ataque masivo contra la cadena de suministro de npm que afectó a
cientos de paquetes populares y miles de repositorios de GitHub - Todos los equipos de desarrollo deben verificar dependencias, rotar secretos y bloquear scripts de instalación automática de inmediato
1 comentarios
Opinión de Hacker News
Vale la pena mencionar Bubblewrap (bwrap). Esta herramienta puede eliminar la mayoría de los vectores de ataque que pueden surgir en entornos npm/node o, al menos, limitar el daño en caso de ejecución arbitraria de código
No es una solución perfecta, pero con un script envoltorio simple creo que es mucho mejor que un contenedor rootless de Podman
Enlace de Bubblewrap en GitHub
Comparte un script escrito en Python. Este script revisa si en alguno de mis repositorios hay paquetes comprometidos incluidos en archivos lock de pnpm o npm
Enlace al script
Al principio parecía un duplicado (Dup), pero en realidad era otro artículo
Enlace relacionado
Indica que la discusión duplicada sigue aquí
Señala que hay un error tipográfico en el título. El título actual en HN es
Sha1-Hulud: The Second Comingsha1-huludEnlace a la búsqueda relacionada en GitHub