La popular extensión Nx Console para Visual Studio Code (versión 18.95.0) fue comprometida y utilizada para distribuir malware de múltiples etapas que roba las credenciales de los desarrolladores. La extensión, con más de 2,2 millones de instalaciones, se distribuía a través del VS Code Marketplace oficial. Según el aviso oficial de seguridad del equipo de Nx, la causa del incidente fue el compromiso de la estación de trabajo de uno de los desarrolladores, lo que provocó la filtración de sus credenciales de GitHub. La versión de la extensión para Open VSX no se ha visto afectada. Todos los usuarios deben actualizar de inmediato a la versión 18.100.0 o superior y rotar todos los secretos accesibles desde la máquina infectada.
Mecanismo de ataque
Las credenciales robadas se utilizaron para introducir un commit huérfano malicioso (orphan, no vinculado a las ramas principales) en el repositorio oficial nrwl/nx en GitHub. El commit no estaba firmado, lo que constituye un indicador importante de compromiso. Según los datos de los investigadores de StepSecurity, al abrir cualquier espacio de trabajo en VS Code, la extensión comprometida descargaba y ejecutaba en cuestión de segundos una carga útil ofuscada de 498 KB, oculta en ese commit huérfano.
Según se informa, el código malicioso instalaba el runtime Bun (JavaScript runtime) para ejecutar el archivo ofuscado index.js, que era una herramienta de robo de credenciales y envenenamiento de la cadena de suministro en múltiples etapas. Los investigadores de StepSecurity describen los siguientes canales de exfiltración de datos: HTTPS, GitHub API y DNS-tunneling. En sistemas macOS, según los investigadores, además se instalaba un backdoor en Python que utiliza GitHub Search API como mecanismo de recepción de comandos (dead drop resolver).
Secretos objetivo y capacidades del malware
Según StepSecurity, el malware extraía de forma dirigida secretos de:
- Bóvedas de 1Password
- Configuraciones de Anthropic Claude Code
- Tokens y secretos de npm, GitHub y AWS
Merece especial atención la integración con Sigstore mencionada por los investigadores, que incluiría la emisión de certificados Fulcio y la generación de SLSA-provenance. Si esta información se confirma, combinada con los OIDC-tokens de npm robados, el atacante podría potencialmente publicar paquetes npm maliciosos con firmas criptográficas válidas que se presentarían como builds legítimos verificados. Es importante señalar que se trata de una evaluación del impacto potencial basada en una única fuente de investigación — hasta el momento no se han registrado casos confirmados de tales publicaciones.
Un detalle característico: el malware comprobaba la zona horaria del sistema y, presumiblemente, evitaba infectar máquinas en zonas horarias de Rusia y la CEI, un patrón típico observado en operaciones de grupos de Europa del Este, aunque en este caso no se ha establecido una atribución concreta.
Ventana de compromiso e indicadores de infección
Según el aviso oficial, la ventana de exposición fue extremadamente breve: 18 de mayo de 2026 de 14:36 a 14:47 CEST (solo 11 minutos). No obstante, el equipo de Nx confirmó que varios usuarios se vieron comprometidos durante ese periodo.
Indicadores de compromiso (IOC), archivos en disco:
~/.local/share/kitty/cat.py~/Library/LaunchAgents/com.user.kitty-monitor.plist/var/tmp/.gh_update_state/tmp/kitty-*
Procesos sospechosos:
- Proceso de Python que ejecuta
cat.py - Cualquier proceso con la variable de entorno
__DAEMONIZED=1
Contexto: nuevo ataque al ecosistema Nx
Este es ya el segundo incidente que afecta al ecosistema de Nx en menos de un año. En agosto de 2025, según los datos de StepSecurity, varios paquetes npm relacionados con Nx fueron infectados con un stealer de credenciales en el marco de una campaña bautizada s1ngularity. Si el ataque anterior se dirigía a paquetes npm, el actual ha desplazado el vector a la extensión de VS Code, un camino más directo hacia el entorno de trabajo del desarrollador.
El incidente se produce en el contexto de una gran oleada de ataques contra el ecosistema npm. Al mismo tiempo se han detectado paquetes maliciosos dirigidos a sesiones de Claude Code, robo de monederos de criptomonedas, toma de control de cuentas de Telegram, así como una campaña coordinada de 38 paquetes que explotan dependency confusion para atacar los pipelines de CI/CD de grandes empresas tecnológicas.
Recomendaciones de respuesta
Para todos los usuarios de Nx Console en VS Code:
- Actualice de inmediato la extensión a la versión 18.100.0 o superior
- Compruebe la presencia en la estación de trabajo de los archivos y procesos IOC mencionados anteriormente
- Si se detectan indicadores, finalice los procesos maliciosos y elimine los artefactos del disco
- Realice una rotación completa de todas las credenciales accesibles desde la máquina afectada: tokens de npm, GitHub, AWS, claves SSH, secretos en gestores de contraseñas
- Revise los registros de auditoría de GitHub y npm en busca de acciones no autorizadas durante la ventana de exposición
- Considere implantar políticas que limiten la actualización automática de extensiones de VS Code en entornos corporativos
Este incidente demuestra que las extensiones de IDE se están convirtiendo en un vector de ataque de cadena de suministro de pleno derecho, comparable en peligrosidad a la compromisión de paquetes npm. Las credenciales de un desarrollador con permisos de publicación en el marketplace son un activo crítico que debe protegerse como acceso privilegiado: claves hardware para MFA, restricción de permisos de publicación, firma obligatoria de commits y monitorización de orphan commits en los repositorios.