Un sofisticado gusano apodado “Mini Shai-Hulud” ha comprometido más de 170 paquetes en los registros npm y PyPI en un ataque generalizado a la cadena de suministro, afectando a proyectos con más de 518 millones de descargas combinadas e introduciendo una técnica novedosa para eludir las atestaciones de seguridad.
"El ataque publicó versiones maliciosas a través del propio flujo de publicación de GitHub Actions del proyecto utilizando tokens OIDC secuestrados", dijo Ashish Kurmi, investigador de StepSecurity. "En una escalada extremadamente rara, los paquetes comprometidos llevan atestaciones de procedencia válidas de nivel 3 de SLSA Build, lo que lo convierte en el primer gusano npm documentado que produce paquetes maliciosos válidamente atestiguados".
La campaña, atribuida al actor de amenazas TeamPCP, ha afectado a 42 paquetes de TanStack, 65 de UiPath y otros de Mistral AI, OpenSearch y Guardrails AI. El compromiso de TanStack (CVE-2026-45321), calificado como crítico con una puntuación CVSS de 9,6, implicó un ataque encadenado utilizando una configuración incorrecta de pull_request_target y el envenenamiento de la caché para extraer tokens OIDC de la memoria del proceso del ejecutor de GitHub Actions, lo que permitió al atacante publicar paquetes sin robar tokens de npm.
La capacidad del ataque para generar una procedencia SLSA válida para paquetes maliciosos erosiona la confianza en los mismos sistemas diseñados para asegurar la cadena de suministro de software. Este incidente presiona a plataformas como GitHub y registros como npm para abordar las debilidades arquitectónicas en los flujos de CI/CD, ya que el riesgo financiero y operativo se extiende ahora a cualquier proyecto que utilice dependencias de mantenedores comprometidos, afectando potencialmente a miles de millones de dólares en valor de software.
Una carga útil multietapa roba credenciales de la nube y criptomonedas
El núcleo del ataque es un ladrón de credenciales multietapa, a menudo incrustado como un archivo JavaScript ofuscado llamado "router_init.js". El malware realiza un perfilado exhaustivo del entorno de la víctima para robar una amplia gama de información confidencial, incluidas credenciales de proveedores de la nube, carteras de criptomonedas, herramientas de IA y aplicaciones de mensajería. Según la empresa de seguridad SlowMist, el gusano está diseñado explícitamente para robar claves de CI/CD e información de carteras criptográficas.
Los datos se exfiltran a través de múltiples canales, incluido un dominio (filev2.getsession[.]org) que utiliza el servicio de mensajería Session, centrado en la privacidad, para evadir la detección. Como alternativa, los datos robados también se envían a repositorios de GitHub controlados por el atacante. El malware también establece persistencia en editores de código populares como VS Code para sobrevivir a los reinicios.
Una variante de Python del malware, encontrada en los paquetes comprometidos guardrails-ai y mistralai, obtiene una carga útil de un servidor remoto que se dirige a gestores de contraseñas como 1Password y Bitwarden. El análisis de Microsoft señaló que esta variante contiene una rama destructiva con una probabilidad de una entre seis de borrar todos los archivos en sistemas que parezcan estar en Israel o Irán.
El gusano se propaga a través de identidades de desarrolladores secuestradas
Lo que hace que el gusano Mini Shai-Hulud sea particularmente peligroso es su capacidad de autopropagación. El malware utiliza tokens OIDC de GitHub robados para acuñar nuevos tokens de publicación de npm, lo que le permite publicar versiones maliciosas de otros paquetes mantenidos por el desarrollador comprometido. Esta técnica elude la necesidad de la autenticación tradicional o de la autenticación de dos factores, creando una amenaza de rápida propagación.
Los atacantes han automatizado este proceso, creando más de 400 repositorios maliciosos con la descripción "Shai-Hulud: Here We Go Again", una referencia a la saga Dune. El gusano falsifica a los autores de los commits para que parezcan aplicaciones legítimas, enmascarando aún más su actividad.
Los investigadores de seguridad aconsejan a todos los desarrolladores que comprueben si alguna versión de paquete comprometida ha entrado en sus entornos, que roten todas las credenciales potencialmente expuestas y que auditen sus configuraciones de OIDC de GitHub Actions en busca de debilidades de seguridad.
Este artículo es solo para fines informativos y no constituye asesoramiento de inversión.