Nx Console 18.95.0 comprometida: ataque a la cadena de suministro dirigido a desarrolladores VS Code ~ Segu-Info

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

  1. Actualizar a Nx Console 18.100.0 o superior de forma
    inmediata.
  2. Terminar los procesos maliciosos listados arriba.
  3. Eliminar los artefactos en disco.
  4. 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


Ver fuente

Related Post