Libera tu mente y alcanza tus metas
Sha1-Hulud: segunda ola de ataques a paquetes NPM
Sha1-Hulud: segunda ola de ataques a paquetes NPM

Sha1-Hulud: segunda ola de ataques a paquetes NPM

Varios proveedores de seguridad están alertando sobre una segunda ola de ataques dirigidos al registro NPM, similares al ataque Shai-Hulud de septimebre pasado.

La nueva campaña de la cadena de suministro, denominada Sha1-Hulud, ha comprometido cientos de paquetes NPM, según informes de Aikido, HelixGuard, Koi Security, Socket, Cyberkendra, y Wiz. Los paquetes troyanizados se subieron a NPM entre el 21 y el 23 de noviembre de 2025. Aikido también publicó la lista de paquetes comprometidos (+26.000 hasta ahora).

El código malicioso extrae secretos de desarrollador y CI/CD, credenciales de proveedores de la nube y puede escalar privilegios en entornos Docker. "La campaña introduce una nueva variante que ejecuta código malicioso durante la fase de preinstalación, lo que aumenta significativamente la exposición potencial en entornos de compilación y ejecución", afirmaron los investigadores de Wiz Hila Ramati, Merav Bar, Gal Benmocha y Gili Tikochinski.

Entre los paquetes afectados esta vez están los repositorios de las siguiente empresas:

  • Zapier - Multiple SDK and integration packages
  • ENS Domains - Ethereum name service libraries
  • PostHog - Analytics and feature flag packages
  • Postman - API development tools
  • Browserbase - Browser automation infrastructure
  • AsyncAPI - API specification tools
  • Voiceflow - Conversational AI platform packages

Al igual que el ataque Shai-Hulud que salió a la luz en septiembre de 2025, la actividad más reciente también publica secretos robados en GitHub, esta vez con la descripción del repositorio: "Sha1-Hulud: The Second Coming".

La ola anterior se caracterizó por la vulneración de paquetes legítimos para distribuir código malicioso diseñado para buscar secretos en las máquinas de los desarrolladores mediante el escáner de credenciales de TruffleHog y transmitirlos a un servidor externo controlado por el atacante. Las variantes infectadas también tenían la capacidad de propagarse de forma autorreplicante, republicándose en otros paquetes npm propiedad del mantenedor comprometido.

En el último conjunto de ataques, se descubrió que los atacantes añadieron un script de preinstalación ("setup_bun.js") al archivo package.json, configurado para instalar o localizar sigilosamente el entorno de ejecución de Bun y ejecutar un script malicioso incluido ("bun_environment.js").

La carga maliciosa ejecuta la siguiente secuencia de acciones a través de dos flujos de trabajo diferentes:

  • Registra la máquina infectada como un ejecutor autoalojado llamado "SHA1HULUD" y agrega un flujo de trabajo llamado .github/workflows/discussion.yaml que contiene una vulnerabilidad de inyección y se ejecuta específicamente en ejecutores autoalojados, lo que permite al atacante ejecutar comandos arbitrarios en las máquinas infectadas abriendo discusiones en el repositorio de GitHub.
  • Exfiltra secretos definidos en la sección de secretos de GitHub y los sube como un artefacto, tras lo cual se descarga y elimina el flujo de trabajo para ocultar la actividad.

"Tras la ejecución, el malware descarga y ejecuta TruffleHog para escanear la máquina local, robando información confidencial como tokens NPM, credenciales de AWS/GCP/Azure y variables de entorno", señaló Helixuard.

Wiz afirmó haber detectado más de 26.000 repositorios afectados en unos 350 usuarios únicos, con la adición constante de 1.000 nuevos repositorios cada 30 minutos en las últimas dos horas.

"Esta campaña continúa la tendencia de comprometer la cadena de suministro de npm haciendo referencia a la nomenclatura y el manejo de la marca Shai-Hulud, aunque podría involucrar a diferentes actores", declaró Wiz. "La amenaza aprovecha las cuentas de mantenimiento comprometidas para publicar versiones troyanizadas de paquetes npm legítimos que ejecutan código de robo de credenciales y exfiltración durante la instalación".

Koi Security calificó la segunda ola como mucho más agresiva, y añadió que el malware intenta destruir todo el directorio personal de la víctima si no logra autenticarse o establecer persistencia. Esto incluye todos los archivos editables que pertenecen al usuario actual en su carpeta personal. Sin embargo, esta funcionalidad similar a un borrado solo se activa cuando se cumplen las siguientes condiciones:

  • No puede autenticarse en GitHub
  • No puede crear un repositorio de GitHub
  • No puede obtener un token de GitHub
  • No puede encontrar un token npm

"En otras palabras, si Sha1-Hulud no puede robar credenciales, obtener tokens ni asegurar ningún canal de exfiltración, recurre a una destrucción catastrófica de datos", afirmaron los investigadores de seguridad Yuval Ronen e Idan Dardikman. "Esto marca una escalada significativa con respecto a la primera ola, cambiando las tácticas del actor del robo de datos al sabotaje punitivo".

Para mitigar el riesgo que representa la amenaza, se insta a las organizaciones a escanear todos los endpoints para detectar la presencia de paquetes afectados, eliminar las versiones comprometidas con efecto inmediato, rotar todas las credenciales y auditar los repositorios en busca de mecanismos de persistencia revisando .github/workflows/ en busca de archivos sospechosos como shai-hulud-workflow.yml o ramas inesperadas.

Actualización: aquí se pueden ver los repositorios infectados (>25.000) y @jackhcable ha publicado un sitio web para comprobar si tienes paquetes afectados. Sube tu archivo package-lock.json o package.json para comprobar si tu proyecto utiliza algún paquete afectado.

Fuente: THN