Fuite de S1ngularity : GitHub et NPM affectés 🚨

Des enquêtes récentes sur l'attaque de la chaîne d'approvisionnement baptisée « s1ngularity » contre Nx révèlent une fuite massive d'identifiants : des milliers de jetons de compte et de secrets de dépôt ont été exposés, avec des répercussions sur plusieurs phases de l'incident. Un rapport post-incident de Wiz détaille l'ampleur de l'exfiltration et fournit un aperçu de son évolution et de son impact.
Selon l'évaluation publiée par les chercheurs de Wiz, la violation a entraîné l'exposition de 2 180 comptes et 7 200 référentiels en trois phases distinctes, avec de nombreux secrets toujours valides et risque de dommages continusLe livre blanc fournit des détails sur la chronologie, les techniques de l'attaquant et la nature des secrets divulgués. 🔍📈
L'attaque de la chaîne d'approvisionnement Nx ⚠️🚀
Nx est un système open source de création et de gestion de référentiels unique, largement utilisé dans les écosystèmes JavaScript/TypeScript à l'échelle de l'entreprise. Avec des millions de téléchargements hebdomadaires sur le registre NPM, un package compromis a un impact considérable sur de nombreuses intégrations et pipelines de développement. ⚙️
Vecteur de compromis et date de l'incident 📅
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. 🔥
Comment fonctionne le 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. ✨💡
Portée d'impact : rayon et phases des dégâts 📈🔥
L'incident s'est déroulé en trois phases. Lors de la première, entre le 26 et le 27 août, des versions compromises de Nx ont directement affecté 1 700 utilisateurs et divulgué plus de 2 000 secrets uniques, en plus d'exposer environ 20 000 fichiers provenant de systèmes infectés. GitHub est intervenu, mais une grande partie des données avait déjà été dupliquée.
- 🔹 Phase 1 (26-27 août) : 1 700 utilisateurs touchés, environ 2 000 secrets divulgués, 20 000 fichiers compromis.
- 🔸 Phase 2 (28-29 août) : Utilisation de jetons divulgués pour convertir des référentiels privés en référentiels publics ; 480 comptes supplémentaires compromis et 6 700 référentiels exposés.
- 🔹 Phase 3 (à partir du 31 août) : attaque ciblant une organisation victime utilisant comptes compromis pour publier 500 dépôts privés supplémentaires.
Au cours de la deuxième phase, les attaquants ont utilisé des jetons GitHub volés pour rendre publics des dépôts privés et les renommer avec la chaîne « s1ngularity », amplifiant ainsi l'exposition. Lors de la troisième phase, une cible spécifique a été exploitée pour publier des centaines de dépôts privés supplémentaires, démontrant ainsi la persistance et l'intensification de l'attaque. 🎯

Source : Wiz
Réponse et atténuation du projet Nx 🔧✅
L'équipe Nx a publié une analyse des causes profondes sur GitHub expliquant comment une injection dans le titre d'une pull request combinée à une utilisation non sécurisée de pull_request_target a permis l'exécution de code arbitraire avec des autorisations élevées, déclenchant le pipeline de publication et facilitant l'exfiltration du jeton de publication npm. 🛠️
Les mesures mises en œuvre comprenaient la suppression des packages malveillants, la révocation et la rotation des jetons compromis, et l'instauration d'une authentification à deux facteurs pour tous les comptes d'éditeur. De plus, Nx a adopté le modèle d'éditeur de confiance de NPM et a ajouté l'approbation manuelle des workflows déclenchés par les relations publiques.
Conseils rapides et points clés ✏️
- ✅ Examinez et faites pivoter les jetons et les secrets immédiatement si une compromission est suspectée.
- 📌 Évitez l’utilisation dangereuse de pull_request_target et appliquez les approbations manuelles sur les flux sensibles.
- 🔧 Implémentez une authentification multifacteur et des modèles de publication fiables tels que Trusted Publisher.
- ⚡ Surveillez les référentiels publics et effectuez des recherches secrètes automatisées pour une détection précoce.
Définition des extraits et FAQ ✨
Qu'est-ce que telemetry.js ?
telemetry.js est le nom du script post-installation malveillant inclus dans la version compromise du package Nx ; il a agi comme un voleur d'informations d'identification sur les systèmes Linux et macOS pour récolter et exfiltrer des secrets vers des référentiels publics contrôlés par l'attaquant.
Combien de comptes et de référentiels ont été affectés ?
Selon le rapport de Wiz, l'attaque a exposé 2 180 comptes et 7 200 référentiels au cours des trois phases documentées de l'incident, avec de nombreux secrets toujours valables et un risque d'impact continu. 📊
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. 📈
Le rapport fournit des mesures, des recommandations et des études de cas pour renforcer les défenses et améliorer la réponse aux fuites secrètes.















