Investigadores de seguridad han revelado una campaña de ataque a la cadena de suministro en npm que comprometió al menos 187 paquetes con un gusano autorreplicable diseñado para trojanizar dependencias y recolectar secretos de desarrolladores. La operación, bautizada Shai-Hulud, toma su nombre del workflow shai-hulud.yaml que los atacantes insertan en repositorios de víctimas. Entre los afectados se listan paquetes asociados a cuentas de CrowdStrike; la compañía indicó que no existe riesgo para Falcon ni para clientes, y que los artefactos sospechosos fueron retirados y las claves rotadas.
Ataque a la cadena de suministro en npm: qué ocurrió y a quién afecta
La alerta inicial provino del desarrollador Daniel Pereira, quien pidió evitar las últimas versiones de @ctrl/tinycolor (más de 2 millones de descargas semanales). Los equipos de Socket y Aikido confirmaron una superficie de compromiso de al menos 187 paquetes al momento del análisis. Según ReversingLabs, se trata de un “primer gusano de su tipo” en el ecosistema npm, orientado a la exfiltración de tokens de nube, con el paquete rxnt-authentication como posible punto de inicio (versión maliciosa publicada el 14 de septiembre de 2025). El presunto “paciente cero” sería la cuenta techsupportrxnt, potencialmente comprometida mediante phishing o la explotación de un GitHub Action vulnerable.
Vector de propagación: modificación de package.json y publicación en cadena
Shai-Hulud introduce lógica de autorreplicación en versiones adulteradas. El código malicioso descarga cada paquete mantenido por la víctima, modifica el package.json para inyectar scripts (p. ej., postinstall o prepare), agrega un bundle.js y repubica una nueva versión en npm. Este mecanismo provoca una “trojanización automática” de paquetes dependientes en cascada, dificultando la trazabilidad y expandiendo el alcance en el árbol de dependencias.
Abuso de GitHub Actions y caza de secretos con TruffleHog
El gusano despliega el workflow shai-hulud.yaml en repositorios comprometidos y utiliza el escáner TruffleHog para detectar secretos (tokens, contraseñas y claves de nube). Los hallazgos se validan y aprovechan para ampliar la intrusión, y los datos se exfiltran a un web hook codificado: https://webhook[.]site/bb8ca5f6-4175-45d2-b042-fc9ebb8170b7. Se observó además la creación de copias públicas de repositorios privados con el prefijo “migration” para extraer código fuente y secretos embebidos en configuraciones.
Impacto, riesgos de propagación y posibles vínculos con s1ngularity
La compleja red de dependencias de npm amplifica el riesgo de propagación lateral y dificulta estimar el alcance real. Investigadores apuntan posibles conexiones con la campaña masiva de supply chain conocida como s1ngularity, que expuso datos de miles de repositorios y cuentas. Por ahora, se reportan “centenares” de paquetes infectados y una limpieza activa en coordinación con el registro de npm, si bien el efecto dominó puede extenderse a integraciones CI/CD y entornos de build si no se aplican medidas de contención.
Indicadores de compromiso (IoC) y medidas de mitigación prioritarias
IoC destacados: presencia de .github/workflows/shai-hulud.yaml; inserción de bundle.js; cambios no habituales en package.json (scripts postinstall/prepare); creación de forks públicos “migration” de repos privados; llamadas a webhook[.]site; ejecución de TruffleHog en CI.
Para mantenedores: rotar de inmediato tokens de npm/GitHub/cloud; retirar versiones comprometidas y republicar artefactos limpios; auditar y eliminar Actions sospechosas; habilitar 2FA y aplicar least privilege en tokens; bloquear Actions desde forks/no confiables; fijar versiones de Actions por SHA; activar secret scanning y branch protection; revisar audit logs y registros de publicación en npm.
Para equipos de desarrollo: congelar dependencias con lockfiles y usar npm ci; cuando sea posible, instalar con –ignore-scripts; monitorizar tráfico de red durante builds; emplear herramientas de supply chain security (Socket, Aikido, ReversingLabs) y políticas allowlist en entornos críticos.
El incidente Shai-Hulud evidencia cómo la seguridad de la cadena de suministro depende de una higiene estricta de secretos, minimización de privilegios y control de CI/CD. Refuerza la necesidad de verificar código de terceros, pinnear dependencias y responder con rapidez a nuevos IoC. Adoptar una defensa en profundidad hoy reducirá el efecto dominó de futuras campañas y mitigará la propagación lateral en sus pipelines y entornos de producción.