Shai-Hulud compromete más de 500 paquetes npm y filtra secretos en GitHub

Un ataque de cadena de suministro a gran escala Un reciente ataque a la cadena de suministro ha puesto en riesgo al ecosistema de desarrolladores que utilizan NPM, la plataforma más popular para la gestión de paquetes en JavaScript. Atacantes lograron inyectar código malicioso en múltiples librerías con más de 2.6 mil millones de descargas semanales, tras comprometer la cuenta de un mantenedor mediante un correo de phishing que imitaba al soporte oficial de npmjs.com. El mantenedor afectado, Josh Junon, confirmó el incidente y señaló que el correo fraudulento advertía que su cuenta sería bloqueada si no actualizaba su autenticación multifactor (2FA), forzando así a que ingresara credenciales en un sitio controlado por los atacantes. Paquetes afectados y alcance de la intrusión Entre los paquetes comprometidos se encuentran algunos de los más utilizados en proyectos globales: chalk (299.9M descargas semanales) debug (357.6M) ansi-styles (371.4M) strip-ansi (261.1M) supports-color (287.1M) color-convert (193.5M) Entre otros, sumando más de 18 librerías populares. Estos paquetes fueron modificados para incluir código malicioso en archivos index.js, diseñado para interceptar interacciones web y manipular operaciones relacionadas con criptomonedas como Bitcoin, Ethereum, Solana, Tron y Litecoin. El malware alteraba funciones críticas de JavaScript (fetch, XMLHttpRequest, window.ethereum) con el objetivo de redirigir transacciones a billeteras controladas por los atacantes. Cómo operaba el malware El código malicioso actuaba de forma silenciosa en el navegador, alterando tanto el contenido mostrado como las interacciones con APIs y aplicaciones web3. Esto permitía manipular direcciones de pago y aprobar transacciones fraudulentas sin que el usuario lo notara. Según Aikido Security, la complejidad del ataque radica en que operaba en múltiples capas, combinando técnicas de manipulación visual con la interceptación de tráfico de red. Impacto y limitaciones Aunque la magnitud del ataque es significativa, expertos señalan que el impacto puede haberse reducido debido a factores como: Solo afectó instalaciones nuevas realizadas entre las 9:00 y 11:30 AM ET del día del compromiso. Requería que el archivo package-lock.json fuera generado en ese mismo periodo. Dependencias directas o transitivas debían incluir versiones comprometidas. Aun así, el incidente confirma la creciente tendencia de ataques contra cadenas de suministro en el ecosistema open source, donde una sola cuenta comprometida puede afectar a millones de proyectos. Lecciones para las empresas Este ataque subraya la necesidad de fortalecer controles en la gestión de dependencias y librerías de terceros: Implementar monitoreo continuo de integridad en paquetes críticos. Adoptar políticas estrictas de actualización y validación de librerías externas. Usar repositorios privados o proxies internos para reducir exposición a cambios no controlados. Reforzar la concienciación en phishing, ya que la intrusión comenzó con un engaño de ingeniería social. Conclusión: El caso de NPM recuerda que las organizaciones deben tratar las dependencias externas con el mismo nivel de seguridad que el software interno. Un simple clic en un correo de phishing puede convertirse en un ataque global con repercusiones multimillonarias.

La comunidad de desarrollo volvió a encender alarmas tras detectarse una masiva campaña de infección en el registro de npm. La familia de malware Shai-Hulud, conocida desde septiembre por comprometer paquetes populares, reapareció con una operación mucho más agresiva que ya afecta a cientos de bibliotecas y miles de repositorios en GitHub.

Qué está pasando: paquetes trojanizados y robo automático de secretos

Durante el fin de semana, actores maliciosos publicaron en npm versiones manipuladas de paquetes ampliamente utilizados —incluyendo herramientas de Zapier, ENS Domains, PostHog y Postman— con el objetivo de robar credenciales de desarrolladores y entornos CI/CD.

El malware modifica el archivo package.json para ejecutar scripts maliciosos en la etapa de preinstalación. Estos scripts recolectan tokens de GitHub, npm y credenciales de proveedores cloud como AWS, Azure y GCP, para luego enviarlos automáticamente a repositorios creados por el atacante en GitHub.

Al momento de la investigación, GitHub ya devolvía 27,600 resultados asociados a esta campaña.

El ataque escala a más de 27,000 artefactos maliciosos

Lo que inició con poco más de 100 paquetes infectados escaló rápidamente. Investigadores de Wiz identificaron que:

  • Se usan 350 cuentas de mantenedores comprometidas.

  • Aparecen 1,000 nuevos repositorios cada 30 minutos.

  • Los paquetes trojanizados superan ya los 27,000 artefactos maliciosos creados automáticamente.

Aikido Security y Wiz confirman que la infección se propaga mediante la descarga de paquetes legítimos, que luego son alterados y republicados en npm usando credenciales robadas.

Un malware altamente ofuscado y destructivo

La nueva variante de Shai-Hulud utiliza dos componentes principales:

  • setup_bun.js: dropper disfrazado de instalador de Bun.

  • bun_environment.js: archivo de 10MB con fuerte ofuscación, anti-análisis y funciones ocultas.

Step Security reveló cinco etapas del ataque, incluyendo una fase destructiva que puede sobrescribir por completo el directorio HOME del desarrollador. Este borrado ocurre si el malware no puede autenticarse en GitHub ni obtener los tokens necesarios.

Impacto en herramientas críticas del ecosistema

Entre los paquetes afectados hay componentes esenciales:

  • Zapier: toolkit oficial para integraciones.

  • ENS Domains: librerías usadas por wallets, DApps y exchanges.

  • AsyncAPI, PostHog y Postman: herramientas populares en DevOps y analítica.

Algunos paquetes ya muestran advertencias de “publicación no autorizada” dentro de npm, señal de revisión automatizada tras detectar indicios de compromiso.

Repositorios filtrando secretos a gran escala

Los secretos robados se almacenan en GitHub en repositorios con descripciones como “Sha1-Hulud: The Second Coming”. GitHub está eliminándolos activamente, pero el actor amenaza con crear nuevas instancias a gran velocidad.

Los archivos filtrados incluyen:

  • cloud.json

  • contents.json

  • environment.json

  • truffleSecrets.json

Recomendaciones para equipos de seguridad y desarrollo

Las empresas afectadas o que utilicen bibliotecas npm deben actuar de inmediato:

1. Identificar y reemplazar paquetes comprometidos

Wiz y Aikido publicaron listados completos para verificación interna.

2. Rotar todos los secretos

Incluye tokens de GitHub, credenciales de npm y llaves de AWS, Azure y GCP.

3. Deshabilitar scripts post-install en CI/CD

Aikido sugiere desactivar estas ejecuciones cuando sea posible para evitar cargas maliciosas.

4. Mantener monitoreo en repositorios

Los repositorios generados automáticamente por el malware son indicadores clave de compromiso.

Un ataque que desafía las nuevas medidas de seguridad del ecosistema npm

El resurgimiento de Shai-Hulud ocurre mientras GitHub implementa controles adicionales para fortalecer la cadena de suministro del ecosistema npm. Sin embargo, estas medidas aún están en proceso de despliegue gradual, dejando espacio para que campañas como esta escalen rápidamente.

Related Post