Los mantenedores del sistema de compilación NX han alertado a los usuarios de un ataque de la cadena de suministro que permitió a los atacantes publicar versiones maliciosas del popular paquete NPM y otros complementos auxiliares con capacidades de recolección de datos.
«Las versiones maliciosas del paquete NX, así como algunos paquetes de complementos de soporte, se publicaron en NPM, que contienen código que escanea el sistema de archivos, recopila credenciales y las publica en GitHub como repositorio bajo las cuentas del usuario», dijeron los mantenedores en un aviso publicado el miércoles.
NX es una plataforma de compilación de origen abierto y agnóstico de tecnología que está diseñada para administrar las bases de código. Se anuncia como una «plataforma de construcción AI-primero que conecta todo, desde su editor hasta CI (integración continua)». El paquete NPM tiene más de 3.5 millones de descargas semanales.
La lista de paquetes y versiones afectados está a continuación. Desde entonces, estas versiones se han eliminado del registro NPM. El compromiso del paquete NX tuvo lugar el 26 de agosto de 2025.
- NX 21.5.0, 20.9.0, 20.10.0, 21.6.0, 20.11.0, 21.7.0, 21.8.0, 20.12.0
- @nx/devkit 21.5.0, 20.9.0
- @NX/Enterprise-Cloud 3.2.0
- @nx/eslint 21.5.0
- @nx/js 21.5.0, 20.9.0
- @nx/key 3.2.0
- @nx/nodo 21.5.0, 20.9.0
- @nx/workspace 21.5.0, 20.9.0
Los mantenedores del proyecto dijeron que la causa raíz del problema surgió de un flujo de trabajo vulnerable agregado el 21 de agosto de 2025 que introdujo la capacidad de inyectar código ejecutable utilizando un título especialmente elaborado en una solicitud de extracción (PR). Si bien el flujo de trabajo se volvió en la «rama maestra» «casi de inmediato» después de que se encontró explotable en un contexto malicioso, se evalúa el actor de amenaza que ha hecho una relaciones públicas dirigidas a una rama obsoleta que aún contenía el flujo de trabajo para lanzar el ataque.
«El gatillo PULL_REQUEST_TARGET se usó como una forma de activar la acción para ejecutar cada vez que se creó o modificó un PR», dijo el equipo de NX. «Sin embargo, lo que se perdió es la advertencia de que este desencadenante, a diferencia del gatillo Pull_Request estándar, ejecuta flujos de trabajo con permisos elevados, incluido un GitHub_Token que tiene permiso de repositorio de lectura/escritura».
Se cree que el GitHub_Token se utilizó para activar el flujo de trabajo «Publish.yml», que es responsable de publicar los paquetes NX en el registro utilizando un token NPM.
Pero con el flujo de trabajo de validación de PR que se ejecuta con privilegios elevados, el «Flojo de trabajo Publish.yml» se desencadena para ejecutarse en el repositorio «NRWL/NX» al tiempo que introduce cambios maliciosos que permitieron exfiltrar el token NPM a un sitio web de atacante (.) Endpoin de sitio final.
«Como parte de la inyección de Bash, los flujos de trabajo de validación de PR provocaron una ejecución de Publish.yml con este commit malicioso y envió nuestro token NPM a un webhook desconocido», explicó el equipo de NX. «Creemos que así es como el usuario obtuvo el token NPM utilizado para publicar las versiones maliciosas de NX».

En otras palabras, la falla de inyección habilitó la ejecución del comando arbitraria si se envió un título de relaciones públicas maliciosas, mientras que el disparador Pull_request_Target otorgó permisos elevados al proporcionar un GitHub_Token con acceso de lectura/escritura al apositorio.
Se ha encontrado que las versiones deshonestas de los paquetes contienen una secuencia de comandos posterior a la instalación que se activa después de la instalación del paquete para escanear un sistema para archivos de texto, recopilar credenciales y enviar los detalles como una cadena codificada de Base64 a un apositorio de Github públicamente accesible que contiene el nombre «S1ngularity-Repository» o «S1ngularity-Repository-0» y «S1ngularity-Repository-1») cuenta.
«El script Poststall malicioso también modificó los archivos .ZSHRC y .BASHRC que se ejecutan cada vez que se inicia un terminal para incluir sudodo -h 0 que solicita a los usuarios para su contraseña del sistema y, si se proporciona, apagarían la máquina de inmediato», agregaron los mantenedores.
Si bien Github ha comenzado a archivar estos repositorios, se aconseja a los usuarios que encuentran los repositorios que asumen compromiso y rotar las credenciales y tokens de GitHub y NPM. También se recomienda a los usuarios que dejen de usar los paquetes maliciosos y verifiquen archivos .zshrc y .bashrc para obtener instrucciones desconocidas y eliminarlos.
![]() |
| Fuente de la imagen: Gitguardian |
El equipo de NX dijo que también han emprendido acciones correctivas rotando sus tokens NPM y GitHub, auditando las actividades de GitHub y NPM en toda la organización para actividades sospechosas y actualizando el acceso de publicación para NX para requerir la autenticación de dos factores (2FA) o la automatización.
Los investigadores de Wiz Merav Bar y Rami McCarthy dijeron que el 90% de más de 1,000 tokens github filtrados aún son válidos, y que también existen docenas de credenciales de nubes legítimas y tokens NPM. Se dice que el malware se ejecutó en máquinas de desarrolladores, a menudo a través de la extensión del código NX Visual Studio. GitGuardian ha detectado hasta 1.346 repositorios con la cadena «S1ngularity-repository».
Entre los 2.349 secretos distintos filtrados, la gran mayoría de ellos representan las claves de GitHub Oauth y los tokens de acceso personal (PAT), seguidos de las claves de API y las credenciales para Google AI, OpenAi, Amazon Web Services, OpenRouter, Anthrope Claude, Postgresql y Datog.
La firma de seguridad en la nube descubrió que la carga útil es capaz de ejecutar solo en los sistemas Linux y MacOS, buscando sistemáticamente archivos confidenciales y extrayendo credenciales, claves SSH y archivos .gitConfig.
«En particular, la campaña armó las herramientas de AI CLI instaladas al incitarlas con banderas peligrosas (-Permisos de eskip-skip,–yolo,-Trust-All-Tools) para robar el contenido del sistema de archivos, explotar herramientas confiables para el reconocimiento malicioso», dijo la compañía.
StepSecurity dijo que el incidente marca el primer caso conocido en el que los atacantes han convertido a asistentes de IA de desarrolladores como Claude Code, Google Gemini CLI y Amazon Q CLI en herramientas para la explotación de la cadena de suministro y evitan los límites de seguridad tradicionales.
«Hay algunas diferencias entre el malware en los paquetes NX de alcance (es decir, @nx/devkit, @nx/eSlint) versus el malware en el paquete NX», dijo Socket. «Primero, el aviso de IA es diferente. En estos paquetes, el aviso de IA es un poco más básico. Este mensaje LLM también tiene un alcance mucho menos amplio, dirigido a claves de billeteras criptográficas y patrones secretos, así como directorios específicos, mientras que los de @NX obtienen cualquier archivo de texto interesante».
Charlie Eriksen, de Aikido, dijo que el uso de clientes de LLM como vector para enumerar secretos en la máquina de víctimas es un enfoque novedoso, y ofrece a los defensores una idea de la dirección que los atacantes pueden dirigirse en el futuro.
«Dada la popularidad del ecosistema NX y la novedad del abuso de herramientas de IA, este incidente destaca la sofisticación evolutiva de los ataques de la cadena de suministro», dijo Ashish Kurmi de Steessecurity. «La remediación inmediata es fundamental para cualquiera que haya instalado las versiones comprometidas».
Actualizar
Wiz, en una actualización de seguimiento el 28 de agosto de 2025, dijo que identificó una segunda ola de ataque, y que «observó a más de 190 usuarios/organizaciones afectadas, y más de 3000 repositorios».
«Un atacante parece estar utilizando tokens GitHub comprometidos para convertir a los repositorios privados en público y cambiarlos el nombre del patrón S1ngularity-Repository-#5letters#», dijo la compañía.
Wiz le dijo a The Hacker News que no puede confirmar si la nueva ola es el trabajo del mismo atacante, y que es posible que otro actor de amenaza de aprovechar la campaña anterior para realizar acciones maliciosas de su elección.
«Dado el primer ataque filtrado tokens públicamente, otro actor podría haber accedido a ellas durante la ventana de exposición y aprovecharlas para esta segunda ola. Observaremos que solo un pequeño subconjunto de los tokens github filtrados fue abusado para esta segunda ola», dijo la compañía.
StepSecurity, que también marcó la segunda ola, dijo que los atacantes, además de explotar las credenciales comprometidas para hacer públicos los repositorios de la organización privada, también están creando horquillas de esos repositorios para garantizar que los datos se conserven incluso después de que se obtengan los repositorios originales.
El análisis de Gitguardian también ha revelado que el 33% de los sistemas comprometidos tenían al menos un cliente LLM instalado, lo que subraya el enfoque del actor de amenaza en las herramientas de desarrollo de IA. Se ha encontrado que aproximadamente el 85% de los sistemas infectados ejecutan MacOS de Apple.
«Trate a los agentes de codificación de IA locales como cualquier otra automatización privilegiada: restringir el acceso a los archivos y la red, revisar a menudo y no ejecute a ciegas las clis de los agentes de codificación de IA en los modos de yolo», dijo Snyk. «Este incidente muestra lo fácil que es voltear los clis de codificación de AI en los agentes autónomos maliciosos cuando las barandillas están discapacitadas».
(La historia se actualizó después de la publicación para reflejar los últimos desarrollos).
