Filtración s1ngularity: GitHub y NPM afectados 🚨
Investigaciones recientes sobre el ataque a la cadena de suministro denominado «s1ngularity» contra Nx revelan una fuga masiva de credenciales: miles de tokens de cuentas y secretos de repositorios quedaron expuestos, con repercusiones en múltiples fases del incidente. Un informe post-incidente de Wiz documenta el alcance y permite entender cómo evolucionó la exfiltración y su impacto. 🚨📊
Según la evaluación publicada por los investigadores de Wiz, la brecha produjo la exposición de 2.180 cuentas y 7.200 repositorios en tres fases diferenciadas, con muchos secretos aún válidos y riesgo de daños continuos. El informe técnico aporta detalles sobre la cronología, las técnicas del atacante y la naturaleza de los secretos filtrados. 🔍📈
El ataque a la cadena de suministro de Nx ⚠️🚀
Nx es un sistema de compilación y gestión de monorepositorio de código abierto, ampliamente usado en ecosistemas JavaScript/TypeScript a escala empresarial. Cuenta con millones de descargas semanales en el registro NPM, por lo que un paquete comprometido tiene un gran alcance y puede afectar a numerosas integraciones y pipelines de desarrollo. ⚙️
Vector de compromiso y fecha del incidente 📅
El 26 de agosto de 2025, el actor malicioso explotó un flujo de trabajo de GitHub Actions vulnerable en el repositorio de Nx para publicar una versión maliciosa del paquete en NPM. El paquete incluía un script post-install malicioso llamado «telemetry.js» que actuó como malware extractor de credenciales en los sistemas afectados. 🔥
Funcionamiento del malware telemetry.js 🕵️♂️
El malware telemetry.js actuó como un ladrón de credenciales en Linux y macOS, intentando robar tokens de GitHub, tokens de npm, claves SSH, archivos .env, carteras de criptomonedas y otros secretos, para luego subirlos a repositorios públicos de GitHub nombrados «s1ngularity-repository». Este patrón permitió al atacante centralizar y exponer la información robada. 🔐

Source: Wiz
El atacante además integró herramientas de línea de comandos para plataformas de IA (por ejemplo, Claude, Q y Gemini) para automatizar búsquedas y recolección mediante prompts dirigidos. Wiz documenta cómo el prompt evolucionó durante el ataque, optimizando la extracción y sorteando rechazos de los modelos ante ciertas instrucciones, lo que refleja una sintonía activa del actor con técnicas LLM. ✨💡
Alcance del impacto: radio de daño y fases 📈🔥
El incidente se desarrolló en tres fases. En la primera, entre el 26 y 27 de agosto, las versiones comprometidas de Nx afectaron directamente a 1.700 usuarios y filtraron más de 2.000 secretos únicos, además de exponer alrededor de 20.000 archivos desde sistemas infectados. GitHub intervino, pero gran parte de los datos ya se habían duplicado. ⚡
- 🔹 Fase 1 (26–27 ago): 1.700 usuarios afectados, ~2.000 secretos filtrados, 20.000 archivos comprometidos.
- 🔸 Fase 2 (28–29 ago): uso de tokens filtrados para convertir repositorios privados en públicos; 480 cuentas adicionales comprometidas y 6.700 repositorios expuestos.
- 🔹 Fase 3 (desde 31 ago): ataque dirigido a una organización víctima usando cuentas comprometidas para publicar 500 repositorios privados más.
Durante la segunda fase los atacantes emplearon tokens de GitHub robados para volver públicos repositorios privados y renombrarlos con la cadena ‘s1ngularity', lo que amplificó la exposición. En la tercera fase un objetivo específico fue explotado para publicar cientos de repositorios privados adicionales, evidenciando persistencia y escalada del atacante. 🎯

Source: Wiz
Respuesta del proyecto Nx y mitigación 🔧✅
El equipo de Nx publicó un análisis de causa raíz en GitHub que explica cómo una inyección en el título de un pull request combinada con el uso inseguro de pull_request_target permitió ejecutar código arbitrario con permisos elevados, desencadenando el pipeline de publicación y facilitando la exfiltración del token de publicación de npm. 🛠️
Las acciones implementadas incluyeron la eliminación de paquetes maliciosos, la revocación y rotación de tokens comprometidos, y la adopción obligatoria de autenticación de dos factores para todas las cuentas publicadoras. Además, Nx adoptó el modelo Trusted Publisher de NPM y añadió aprobación manual para flujos de trabajo desencadenados por PRs. 🔐📌
Recomendaciones y puntos clave rápidos ✏️
- ✅ Revisar y rotar tokens y secretos inmediatamente si se sospecha compromiso.
- 📌 Evitar el uso inseguro de pull_request_target y aplicar aprobaciones manuales en flujos sensibles.
- 🔧 Implementar autenticación multifactor y modelos de publicación confiables como Trusted Publisher.
- ⚡ Monitorizar repositorios públicos y búsquedas automatizadas de secretos para detección temprana.
Snippets definitorios y preguntas frecuentes ✨
¿Qué es «telemetry.js»?
telemetry.js es el nombre del script post-install malicioso incluido en la versión comprometida del paquete Nx; actuó como ladrón de credenciales en sistemas Linux y macOS para recolectar y exfiltrar secretos hacia repositorios públicos controlados por el atacante. 🔍
¿Cuántas cuentas y repositorios se vieron afectados?
Según el informe de Wiz, el ataque expuso 2.180 cuentas y 7.200 repositorios a lo largo de las tres fases documentadas del incidente, con muchos secretos aún válidos y riesgo de impacto continuado. 📊
46% de entornos presentaron contraseñas comprometidas, casi el doble respecto al 25% del año anterior. Obtén el Picus Blue Report 2025 para un análisis completo sobre prevención, detección y tendencias en exfiltración de datos. 📈
El informe aporta métricas, recomendaciones y casos prácticos para endurecer defensas y mejorar la respuesta ante fugas de secretos. ⭐