Selon Socket, le système de build Nx a subi une attaque de la chaîne d’approvisionnement exploitant une vulnérabilité dans un workflow GitHub Actions, compromettant un écosystème totalisant plus de 4,6 millions de téléchargements hebdomadaires. Les attaquants ont publié des packages malveillants qui ont récolté des milliers d’identifiants, mettant en lumière des lacunes critiques de sécurité CI/CD et le risque des branches obsolètes comme vecteurs persistants.
L’attaque s’est appuyée sur une injection bash via un workflow déclenché par pull_request_target avec des permissions élevées. Des titres de PR forgés comme $(echo “malicious code”) ont permis une exécution de commandes arbitraires. Les acteurs ont ciblé des branches anciennes où le workflow vulnérable subsistait, même après sa suppression de la branche master.
À partir de là, les attaquants ont utilisé le GITHUB_TOKEN volé pour déclencher le workflow publish.yml, exfiltrer des tokens npm puis publier des paquets malveillants. L’objectif était la collecte d’identifiants à grande échelle.
Réponse de l’équipe Nx : migration vers le mécanisme Trusted Publishers de npm via OIDC (suppression des tokens longue durée), rebase de toutes les branches, ajout d’analyses CodeQL et restrictions pour les contributeurs externes.
• IOCs : non fournis par la source.
• TTPs observés :
- Exploitation d’un workflow pull_request_target avec permissions élevées.
- Injection bash via des titres de PR contenant $(…).
- Usage du GITHUB_TOKEN pour lancer publish.yml et exfiltrer des tokens npm.
- Publication de paquets malveillants visant la collecte d’identifiants.
- Ciblage de branches obsolètes conservant des workflows vulnérables.
Type d’article : rapport d’incident à visée d’analyse technique et de compréhension de l’attaque. 🚨
🔗 Source originale : https://socket.dev/blog/nx-supply-chain-attack-investigation-github-actions-workflow-exploit