Nx Console 18.95.0 comprometida: ataque a la cadena de suministro dirigido a desarrolladores VS Code
Investigadores de seguridad han identificado una versión comprometida de la
extensión Nx Console (nrwl.angular-console,
versión 18.95.0) publicada en el Marketplace de Visual Studio
Code. La extensión, con más de 2,2 millones de instalaciones,
es ampliamente utilizada para gestionar proyectos Nx en VS Code, Cursor y
JetBrains. La versión de Open VSX no fue afectada.
La ventana de exposición fue muy estrecha: el payload malicioso estuvo activo entre las 14:36 y las 14:47 CEST del 18 de mayo de 2026 — apenas 11 minutos — pero suficiente para comprometer a varios usuarios.
Vector de ataque: orphan commit en GitHub
La causa raíz fue la
filtración de credenciales GitHub de uno de los desarrolladores del
proyecto, cuya máquina había sido previamente comprometida en un incidente de
seguridad no divulgado. Con esas credenciales, el atacante empujó un
commit huérfano y sin firma (orphan commit) al
repositorio oficial nrwl/nx en GitHub.
El commit introducía un payload obfuscado de 498 KB que la extensión descargaba y ejecutaba de forma silenciosa al abrir cualquier workspace en VS Code. Esta técnica — usar un commit huérfano oculto en un repositorio legítimo como delivery channel — es especialmente evasiva porque el código no aparece en ninguna rama normal y puede pasar desapercibido ante controles de integridad superficiales.
Anatomía del malware: multi-stage credential stealer
El payload es una herramienta de múltiples etapas con capacidades de robo de credenciales y envenenamiento de la cadena de suministro:
Primera etapa — Ejecución silenciosa: Al abrirse cualquier
workspace, la extensión instala el runtime Bun JavaScript y
ejecuta un index.js ofuscado como proceso detached en
segundo plano (__DAEMONIZED=1 en su entorno de proceso).
Evasión geográfica: El malware verifica la zona horaria del sistema para evitar infectar máquinas en Rusia y la CEI, un patrón que sugiere autoría o protección hacia actores de esa región.
Exfiltración de secretos — objetivos concretos:
- Bóvedas de 1Password
- Configuraciones de Anthropic Claude Code
- Tokens de npm
- Tokens de GitHub
- Credenciales de AWS
La exfiltración utiliza tres canales: HTTPS, la GitHub API y tunelización DNS — lo que dificulta la detección mediante inspección de tráfico convencional.
Backdoor Python en macOS: En sistemas macOS, el malware
instala un backdoor en Python (~/.local/share/kitty/cat.py) que
persiste mediante un
LaunchAgent
(~/Library/LaunchAgents/com.user.kitty-monitor.plist). Usa la
GitHub Search API como dead drop resolver — es
decir, como canal encubierto para recibir comandos del atacante sin
comunicación directa con un servidor C2.
El riesgo más grave: abuso de Sigstore El payload incluye integración completa con Sigstore, incluyendo emisión de certificados via Fulcio y generación de provenance SLSA. Combinado con tokens npm OIDC robados, esto permitiría al atacante publicar paquetes npm maliciosos con atestaciones de procedencia criptográficamente válidas — es decir, paquetes que aparecerían como builds legítimos y verificados ante cualquier herramienta de verificación de provenance. Esta es la capacidad de mayor alcance del ataque, ya que podría haber contaminado ecosistemas downstream de forma prácticamente indetectable.
Indicadores de Compromiso (IoCs)
Si algún usuario instaló la versión 18.95.0 en la ventana de exposición, debe buscar:
Archivos:
~/.local/share/kitty/cat.py~/Library/LaunchAgents/com.user.kitty-monitor.plist/var/tmp/.gh_update_state/tmp/kitty-*
Procesos activos:
- Proceso Python ejecutando
cat.py -
Cualquier proceso con la variable de entorno
__DAEMONIZED=1
Remediación
- Actualizar a Nx Console 18.100.0 o superior de forma inmediata.
- Terminar los procesos maliciosos listados arriba.
- Eliminar los artefactos en disco.
- Rotar todas las credenciales accesibles desde la máquina afectada: tokens npm, tokens GitHub, claves SSH, secretos AWS, y cualquier otro secreto presente en el entorno de desarrollo.
Contexto: patrón de ataques al ecosistema Nx y npm
Este es el segundo ataque al ecosistema Nx en menos de un año. En agosto de 2025, la campaña s1ngularity comprometió varios paquetes npm del mismo ecosistema con un credential stealer similar; aquella vez el vector fue los paquetes npm, esta vez la extensión de VS Code.
El artículo original también documenta otros paquetes npm maliciosos descubiertos en paralelo, que ilustran la escala actual del problema en la cadena de suministro de software:
- iceberg-javascript, supabase-javascript, auth-javascript y otros: binarios ELF que abren backdoors en sesiones de Claude Code para robar credenciales.
- noon-contracts: impersona un SDK de contratos inteligentes para exfiltrar claves SSH, wallets crypto, credenciales AWS y Kubernetes.
-
martinez-polygon-clipping-tony: fork troyanizado que
descarga un RAT para Windows de 17 MB vía hook
postinstall, usando Telegram como C2. - common-tg-service: permite secuestrar cuentas de Telegram de las víctimas.
- k8s-pod-checker, dev-env-utils, node-perf-utils: instalan un proxy LLM en la máquina de la víctima para enrutar tráfico de IA a través del servidor comprometido.
- Una campaña de dependency confusion de 38 paquetes npm atribuida a un actor indonesio, dirigida a pipelines CI/CD de Apple, Google y Alibaba.
Análisis para CISOs
Este incidente ejemplifica cómo el entorno de desarrollo es superficie de ataque crítica. Los puntos a destacar desde una perspectiva de gestión de riesgos:
El compromiso inicial fue de una sola máquina de un desarrollador, lo que fue suficiente para desencadenar un ataque a millones de instalaciones. Los controles de seguridad en estaciones de trabajo de desarrolladores deben ser equivalentes a los de entornos de producción.
El uso de orphan commits sin firma en repositorios legítimos como canal de entrega es una técnica que evade la mayoría de controles basados en reputación de dominio o verificación de fuente. La firma de commits debería ser obligatoria en repositorios críticos.
La capacidad de abuso de Sigstore es el elemento más preocupante a largo plazo: erosiona la confianza en los mecanismos de verificación de provenance que muchas organizaciones están adoptando como control de seguridad en su cadena de suministro software (SLSA, SBOM). Un atacante con tokens OIDC robados puede producir artefactos que superan controles de firma que se asumían robustos.
Se recomienda revisar la política de extensiones de VS Code permitidas en entornos corporativos, especialmente en máquinas con acceso a secretos de producción o capacidad de publicar en registros de paquetes.
Fuente: THN


0 Comments:
Publicar un comentario
Gracias por dejar un comentario en Segu-Info.
Gracias por comentar!