1 puntos por GN⁺ 2025-11-25 | 1 comentarios | Compartir por WhatsApp
  • 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.js y luego ejecuta bun_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-x64 y 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.js y no bun_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-template y 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 postinstall de 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

 
GN⁺ 2025-11-25
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

    • Explica que fusionó los comentarios relacionados en uno solo. Aunque los enlaces sean distintos, si el tema de discusión es sustancialmente el mismo, cumple con el criterio para fusionarlos. Como el segundo enlace tenía información adicional, dice que también lo mostró en la parte superior del original
    • Menciona que este artículo tiene bastante información adicional
    • Sugiere usar “Dup” para reenvíos del mismo enlace, y “See also” para artículos sobre el mismo incidente pero con enlaces distintos
    • Enfatiza que no es un duplicado, sino un artículo diferente sobre el mismo incidente
    • Como referencia, también presenta Shai-Hulud Returns: Over 300 NPM Packages Infected (helixguard.ai)
  • 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 Comming – Postman, Zapier, PostHog All Compromised via NPM
    pero la forma correcta es Shai-Hulud

    • Sin embargo, parece que la confusión surgió porque el nombre del repositorio al que realmente se subieron secretos es Sha1-Hulud: The Second Coming
    • El propio gusano está publicando secretos en GitHub con el nombre sha1-hulud
      Enlace a la búsqueda relacionada en GitHub
    • También comenta que la ortografía de “coming” debería llevar una sola m, y alguien pregunta si quizá fue un juego de palabras intencional
    • Dice que no entiende los downvotes, y explica que el ataque real no está relacionado con el algoritmo SHA1, ni el nombre tiene esa intención de parodia