El gusano aprende a castigar a las víctimas incluso por intentar proteger sus cuentas

El gusano Shai-Hulud volvió a infiltrarse en npm y se centró en los desarrolladores de TypeScript. En el paquete oficial Tensorlake se encontró código malicioso que roba secretos de trabajo, infecta otros proyectos e incluso puede eliminar archivos del propietario del token robado.
La versión suplantada tensorlake 0.5.144 apareció el 8 de octubre de 2026. Los especialistas de Socket detectaron la amenaza aproximadamente 11 minutos después de la publicación. El paquete tiene alrededor de 12.000 descargas por semana, pero se desconoce el número de instalaciones de la versión infectada. La versión peligrosa ya se eliminó de npm. En GitHub el proyecto reunió más de mil estrellas.
Tensorlake ofrece entornos aislados para ejecutar código de agentes de IA, y la biblioteca de TypeScript los gestiona desde aplicaciones. Pero en un ataque a la cadena de suministro, el entorno aislado no protege: el malware se ejecuta en el equipo del desarrollador antes de enviar el código al entorno protegido. El script de instalación obtiene los permisos del usuario que lo ejecutó.
La infección comienza durante la instalación del paquete. En su configuración apareció el comando preinstall, que invoca el archivo lib/setup.mjs. El cargador ejecuta a través del entorno Bun el segundo script, lib/Math_Symbol.js, en el que se oculta el código principal del gusano. Al desarrollador no le hace falta importar Tensorlake ni iniciar un agente de IA; basta con permitir los scripts de instalación de npm.
El malware busca tokens de GitHub y npm, claves de AWS, datos de Kubernetes y de HashiCorp Vault, claves SSH, el contenido de archivos .env, datos de criptobilleteras y contraseñas guardadas en navegadores. El gusano también examina la configuración de Claude, Cursor, Kiro, Windsurf y Zed. Los tokens robados dan acceso a repositorios ajenos y permiten publicar nuevas versiones de software.
Shai-Hulud puede usar las credenciales npm robadas para publicar nuevas versiones infectadas de los paquetes de la víctima. En los repositorios de GitHub el gusano coloca los archivos de configuración .claude/settings.json y .vscode/tasks.json para reiniciarse. Un esquema similar fue detectado por especialistas durante el ataque de agosto, cuando cientos de paquetes npm resultaron afectados.
El servidor de control lo busca a través de un contrato de Ethereum y de unos 30 servicios RPC públicos, y si falla se dirige a GitHub. En el caso de Tensorlake, el atacante introdujo el malware en la rama principal del proyecto y aprovechó la publicación normal del lanzamiento. Por eso el paquete obtuvo confirmación de origen, aunque el código fuente ya estaba infectado.
Una trampa aparte está relacionada con la revocación del token de GitHub robado. El gusano crea un monitor en segundo plano gh-token-monitor, que comprueba si la clave sigue funcionando y, si se bloquea, puede eliminar el directorio personal del usuario. En el análisis del ataque, Socket advierte que eliminar el paquete de npm no elimina el monitor ya instalado.
A los desarrolladores se les aconseja buscar tensorlake@0.5.144 en las dependencias y en los registros de compilación. Si el malware logró ejecutarse, primero hay que aislar el equipo y desactivar gh-token-monitor, y solo después revocar los tokens y cambiar las claves. También será necesario revisar los repositorios y reconstruir los sistemas afectados a partir de fuentes limpias. La simple reversión del paquete no garantiza seguridad.