Un malware denominado Mini Shai-Hulud comprometió más de 400 paquetes npm de múltiples editores sin relación entre sí. El ataque combinó robo de credenciales con propagación automática a través del ecosistema de desarrollo de software.
Qué pasó
El gusano afectó paquetes ampliamente utilizados como keyv, flat-cache y cache-manager. El payload malicioso, basado en Bun y ofuscado en JavaScript, se ejecutaba mediante el hook de ciclo de vida preinstall de npm, activándose automáticamente durante la instalación de dependencias.
Una vez activo, el malware buscaba credenciales de npm, GitHub, AWS, Kubernetes y HashiCorp Vault en los entornos de desarrollo comprometidos. Los datos robados se exfiltraban encriptados a través de un endpoint HTTPS controlado por los atacantes. Como canal alternativo, el gusano utilizaba repositorios de GitHub para enviar información. Además, inyectaba archivos de configuración de Claude y Visual Studio Code en repositorios, y publicaba más de 400 actualizaciones no autorizadas de paquetes. Muchas de estas versiones maliciosas aparecieron sin commits, pull requests ni tags correspondientes en el código fuente de los proyectos.
Qué implica para LATAM
El ecosistema de desarrollo en América Latina depende fuertemente de paquetes npm de terceros. Equipos de desarrollo en la región que utilizaron cualquiera de los paquetes comprometidos durante el período del ataque quedaron expuestos al robo de credenciales de múltiples plataformas cloud y servicios de gestión de secretos. La capacidad del gusano para propagarse automáticamente amplifica el riesgo: un solo desarrollador comprometido puede convertirse en vector de infección para proyectos completos.
Organizaciones que operan infraestructura en AWS, Kubernetes o utilizan Vault para gestión de secretos deben asumir que las credenciales almacenadas en entornos de desarrollo pudieron haber sido comprometidas si instalaron actualizaciones de los paquetes afectados.
Qué mirar
La prioridad inmediata es auditar las instalaciones de paquetes npm en entornos de desarrollo y CI/CD, verificando versiones contra el código fuente oficial en GitHub. La ausencia de commits correspondientes a versiones publicadas es indicador de compromiso. Rotar credenciales de servicios cloud, repositorios y gestores de secretos accesibles desde entornos de desarrollo es crítico. Revisar archivos de configuración de editores y herramientas de IA inyectados sin autorización puede revelar persistencia del ataque.