Nx Console en jaque: cómo una extensión de productividad se convirtió en un robo de credenciales y una amenaza para la cadena de suministro

Publicada 4 min de lectura 27 lecturas

Un ataque dirigido a desarrolladores volvió a poner en evidencia la fragilidad de la cadena de suministro del software: la extensión Nx Console para editores como Visual Studio Code, con más de 2,2 millones de instalaciones, publicó una versión comprometida (rwl.angular-console v18.95.0) que, al abrir cualquier espacio de trabajo, descargaba y ejecutaba un payload ofuscado alojado en un commit huérfano dentro del código del proyecto oficial. El vector combina ingeniería en el repositorio y persistencia local para convertir una herramienta de productividad en un extractor de secretos.

Según los análisis públicos, el payload es un sistema multilínea de robo de credenciales y envenenamiento de la cadena de suministro: instala el runtime Bun para ejecutar un JavaScript ofuscado, evita entornos en zonas horarias de Rusia/CIS, se ejecuta en segundo plano y extrae secretos de gestores locales como 1Password, configuraciones de Anthropic Claude Code, tokens de npm, claves y tokens de GitHub y AWS. Además, se informó de una puerta trasera en macOS que usa la API de búsqueda de GitHub como canal «dead drop» para recibir órdenes, y mecanismos de exfiltración que incluyen HTTPS, la API de GitHub y tunelado por DNS.

Nx Console en jaque: cómo una extensión de productividad se convirtió en un robo de credenciales y una amenaza para la cadena de suministro
Imagen generada con IA.

Lo que eleva el riesgo a un nuevo nivel es la integración con Sigstore y la capacidad de generar SLSA provenance y certificados Fulcio, combinada con tokens OIDC robados de npm: un atacante que domine estos elementos puede publicar paquetes con firmas y atestaciones válidas que aparenten ser builds verificados, erosionando uno de los pocos mecanismos criptográficos pensados para restaurar confianza en los artefactos binarios. Esta técnica convierte credenciales robadas en una palanca para envenenar ecosistemas dependientes.

Los mantenedores han atribuido la raíz del problema a credenciales comprometidas de uno de sus desarrolladores, que permitieron subir un commit huérfano al repositorio afectado. El intervalo de exposición en el que se instaló la versión maliciosa fue breve pero suficiente: entre el 18 de mayo de 2026 a las 14:36 y 14:47 CEST, según el aviso. Open VSX, la alternativa de distribución abierta, no se vio afectada, lo que subraya cómo un único canal comprometido puede bastar para impactar a millones de usuarios.

Los indicadores de compromiso publicados incluyen artefactos en disco como ~/.local/share/kitty/cat.py, ~/Library/LaunchAgents/com.user.kitty-monitor.plist, /var/tmp/.gh_update_state y /tmp/kitty-*, así como procesos en ejecución asociados a un python ejecutando cat.py o procesos marcados con __DAEMONIZED=1 en su entorno. Si reconoces alguno de estos rastros debes actuar inmediatamente: detener procesos sospechosos, eliminar los archivos indicados y rotar todas las credenciales alcanzables desde la máquina comprometida.

Además de las acciones urgentes a nivel de estación de trabajo, hay medidas imprescindibles en la defensa de la cadena de suministro: actualizar la extensión a la versión corregida (18.100.0 o posterior), revocar y reemitir tokens y claves (no solo en el equipo local, sino en sistemas CI/CD, repositorios y servicios en la nube), auditar pipelines por artefactos publicados en la ventana de compromiso y comprobar la integridad de cualquier paquete npm publicado con certificados o atestaciones recientes. También conviene revisar logs de red por patrones de DNS tunneling y llamadas inusuales a APIs externas.

Nx Console en jaque: cómo una extensión de productividad se convirtió en un robo de credenciales y una amenaza para la cadena de suministro
Imagen generada con IA.

Este incidente recuerda la campaña s1ngularity de agosto de 2025 y una oleada reciente de paquetes npm maliciosos que incluían desde binarios ELF ocultos hasta RATs y ladrones de cookies para navegadores: la amenaza persistente son los ataques que apuntan directamente a desarrolladores y pipelines en lugar de a usuarios finales, porque comprometer a quien firma, construye o publica software multiplica el alcance del atacante. Para quien gestiona proyectos y organizaciones esto implica reforzar controles sobre las cuentas de mantenedores, limitar el alcance de tokens OIDC, aplicar rotación periódica, habilitar autenticación multifactor fuerte (preferible con llaves físicas) y comprobar las atestaciones SLSA en los paquetes antes de aceptarlos en producción.

Los repositorios relevantes donde puedes consultar el código oficial y las correcciones son el repositorio de Nx Console en GitHub (https://github.com/nrwl/nx-console) y el monorepo de Nx (https://github.com/nrwl/nx). Para entender mejor la superficie de riesgo que introduce la firma y la procedencia de artefactos, la documentación de Sigstore es una lectura útil (https://sigstore.dev), y si necesitas inspeccionar la runtime involucrada en la ejecución del payload, la página oficial de Bun explica cómo opera (https://bun.sh).

En definitiva, este incidente confirma que la seguridad de la cadena de suministro depende tanto de controles técnicos en los repositorios y CI/CD como de la higiene de los endpoints de los desarrolladores. La acción inmediata para usuarios afectados es: actualizar la extensión, eliminar artefactos y procesos, y rotar todas las credenciales; la acción estratégica para equipos es endurecer políticas de acceso, reducir la vesting de permisos y monitorizar el uso de firmas y atestaciones en búsqueda de anomalías. La prevención y la detección temprana siguen siendo las mejores defensas contra ataques que convierten herramientas de desarrollo en vectores de compromiso masivo.

Cobertura

Relacionadas

Mas noticias del mismo tema.