Source: Endor Labs — Analyse technique d’une campagne de supply chain visant l’écosystème des « community nodes » n8n; mise à jour au 2026-01-13 indiquant que la campagne est toujours active.
⚠️ Des attaquants ont publié sur npm des paquets n8n déguisés en intégrations « Google Ads » pour collecter des identifiants OAuth/API via un formulaire de configuration légitime, puis exfiltrer ces secrets lors de l’exécution des workflows vers un serveur sous contrôle adversaire. Cette offensive va au-delà des récentes failles RCE n8n et exploite la confiance accordée aux nœuds communautaires non audités.
🧩 Contexte et surface d’attaque: n8n, basé sur Node.js, s’appuie sur des paquets npm pour ses nœuds communautaires, exécutés avec accès complet (variables d’environnement, FS, réseau) et recevant des identifiants déchiffrés au runtime. Les chercheurs citent plus de 100 000 serveurs n8n vulnérables à CVE-2026-21858 (périmètre non corrélé au volume de nœuds installés), illustrant l’ampleur de l’écosystème.
🔬 Chaîne d’attaque reconstituée:
- Publication du paquet malveillant sur npm.
- Installation dans n8n comme community node.
- Le formulaire collecte de « vrais » identifiants Google Ads et les stocke chiffrés dans n8n.
- À l’exécution, le nœud récupère les identifiants déchiffrés et les exfiltre (POST) vers le C2.
📦 Paquet et fonctionnement interne: le paquet expose un nœud « Google Ads »; lors d’execute(), il appelle l’API n8n pour récupérer les credentials déchiffrés (clientId, clientSecret, refreshToken, developerToken, etc.), puis envoie ces données, avec MAC/hostname, au C2. L’analyse a été facilitée par la présence de fichiers source maps permettant de reconstituer le TypeScript d’origine; l’obfuscation était basique et un domaine C2 unique était codé en dur.
Indicators of Compromise (IOCs):
- Paquet principal: n8n-nodes-hfgjf-irtuinvcm-lasdqewriit
- C2 domaine: n8n-license-validator.onrender.com
- C2 endpoint: /validate-license (POST)
- Hébergement C2: onrender.com
- Fichiers malveillants et hachés:
- dist/nodes/GoogleNode/GoogleNode.node.js — b435f95ad1dc9b1830798b2ed0dd2c891ef158dd7b622bd135c2214c26fe7998
- dist/nodes/GoogleNode/handlers/shared/GoogleAdsClient.js — f458ee2b1cf41e00de31e1bb727a876f6927ac61d53a502817180f6b8ebbb72b
- dist/credentials/GoogleAdsApi.credentials.js — 38931ec67a3ebdb344fd0a2c92865cc3cfb07e8e6d161c91ad36425c11fb0ef6
- Référence adviso: GHSA-77g5-qpc3-x24r (un des paquets retirés)
- Autres paquets similaires signalés (statuts variables):
- n8n-nodes-gg-udhasudsh-hgjkhg-official (disponible en ligne)
- n8n-nodes-ggdv-hdfvcnnje-uyrokvbkl (placeholder)
- n8n-nodes-vbmkajdsa-uehfitvv-ueqjhhhksdlkkmz (placeholder)
- n8n-nodes-performance-metrics (placeholder)
- n8n-nodes-gasdhgfuy-rejerw-ytjsadx (déprécié)
- n8n-nodes-danev (retiré/404)
- n8n-nodes-rooyai-model (retiré/404)
- n8n-nodes-zalo-vietts (retiré/404)
Tactiques, Techniques et Procédures (TTPs):
- 🕵️ Déguisement en intégration légitime (Google Ads) via un community node npm.
- 🎣 Collecte de secrets via le formulaire de configuration des credentials.
- 🔓 Abus du runtime n8n pour récupérer les credentials déchiffrés.
- 📤 Exfiltration HTTP POST vers un C2 onrender.com; collecte de MAC et hostname.
- 🧱 Obfuscation JavaScript; multiples versions publiées en peu de temps; métadonnées pauvres (peu de description/README).
Impact: en compromettant un nœud communautaire, les attaquants obtiennent un accès aux jetons OAuth, clés API et secrets de multiples services connectés (ex. Google Ads, Stripe, Salesforce), transformant n8n en coffre-fort centralisé exposé. L’article établit un parallèle avec la campagne Shai-Hulud (abus de GitHub Actions) et montre l’extension des menaces supply chain vers les plateformes d’automatisation de workflows.
Conclusion: Article d’Endor Labs de type analyse technique visant à documenter une campagne en cours, détailler le mode opératoire, et fournir IOCs/TTPs pour la détection.
🧠 TTPs et IOCs détectés
TTP
[‘Déguisement en intégration légitime (Google Ads) via un community node npm.’, ‘Collecte de secrets via le formulaire de configuration des credentials.’, ‘Abus du runtime n8n pour récupérer les credentials déchiffrés.’, ‘Exfiltration HTTP POST vers un C2 onrender.com; collecte de MAC et hostname.’, ‘Obfuscation JavaScript; multiples versions publiées en peu de temps; métadonnées pauvres (peu de description/README).’]
IOC
{‘hashes’: [‘b435f95ad1dc9b1830798b2ed0dd2c891ef158dd7b622bd135c2214c26fe7998’, ‘f458ee2b1cf41e00de31e1bb727a876f6927ac61d53a502817180f6b8ebbb72b’, ‘38931ec67a3ebdb344fd0a2c92865cc3cfb07e8e6d161c91ad36425c11fb0ef6’], ‘domain’: ’n8n-license-validator.onrender.com’, ’endpoint’: ‘/validate-license (POST)’}
🔗 Source originale : https://www.endorlabs.com/learn/n8mare-on-auth-street-supply-chain-attack-targets-n8n-ecosystem