Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
n8n-databricks-path-join — Preuve de concept pour un path-traversal (CWE-22) dans n8n au niveau des nœuds Databricks : une entrée de webhook non authentifiée s'échappe du chemin Genie pour exfiltrer les secrets PAT de l'espace de travail, avec un lab en boucle locale. | Kitploit
Outils/GitHubGitHub/abraxas/n8n-databricks-path-join
Analyse des VulnérabilitésExploitationExploitation d'Applications WebCollecte d'InformationsVirtualisation de SécuritéTests d'IntrusionLabs et Pratique
GitHub
abraxas/n8n-databricks-path-join

n8n-databricks-path-join

Preuve de concept pour un path-traversal (CWE-22) dans n8n au niveau des nœuds Databricks : une entrée de webhook non authentifiée s'échappe du chemin Genie pour exfiltrer les secrets PAT de l'espace de travail, avec un lab en boucle locale.

Voir le dépôt
2il y a 15 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Abraxas Labs - n8n-databricks-path-join

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  n8n-databricks-path-join

n8n-databricks-path-join

n8n 2.42.0 - n8n GmbH

GHSA-89p4-6h98-c7xm et GHSA-rqch-9jrh-cr8w ont introduit toPathSegment : encodeURIComponent plus le rejet de '' / . / ... getSpace.operation.ts concatène spaceId dans ${host}/api/2.0/genie/spaces/${spaceId}. Vector Search getIndex et Files downloadFile relèvent de la même classe. LangChain VectorStoreDatabricks encapsule déjà le chemin de l'index. WHATWG new URL fait le reste. ../ se normalise. Le PAT Databricks du workflow suit le mouvement.

Une entrée webhook non fiable devient GET /api/2.0/secrets/get sous le token du workspace. Fuite d'identifiants sur Databricks, pas de RCE sur l'hôte n8n.

IDpas encore de CVE
CWECWE-22
CVSSÉlevé : 8.6 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
Produitn8n
Affectéjusqu'à 2.42.0 (86c23326) ; frère de GHSA-89p4 / GHSA-rqch
Authnon authentifié au niveau du webhook si un workflow victime a lié une entrée non fiable
LicenceGNU Affero GPL v3.0
Lab127.0.0.1 uniquement

Ce qu'un attaquant peut faire

Atteindre un webhook public, un chat ou un déclencheur HTTP qui alimente Databricks Genie get-space (ou Vector Search get-index, ou Files download) avec un id contrôlé par l'attaquant. Le token du workflow exécute alors un GET sur /api/2.0/secrets/get. Si ce token peut lire le scope (PAT d'admin de workspace typique), la sortie du nœud est le JSON value du secret.

Un token sans ACL sur les secrets renvoie toujours 403 ; cela prouve tout de même que la requête a quitté /genie. Le téléchargement de fichiers nécessite un ../ plus profond (préfixe plus long). Nécessite une victime ayant lié une entrée non fiable à ce paramètre. Un nœud HTTP Request verrouillé (allowedHttpRequestDomains: none) ne remplace pas l'encodage des ids Databricks.

Même produit, reste frère : hidden Function vm2.

Comment je l'ai trouvé

Même passe sur les restes que le lab Function : dix chasses sur [email protected] après la vague de GHSA du 16 septembre 2026. La chasse à l'injection de nœuds cherchait des frères incomplets de GHSA-89p4 (ids de ressources de l'API publique) et GHSA-rqch (nom de table Supabase). Elastic, Adalo, Currents, le nœud n8n lui-même. Le helper existe parce qu'ils ont déjà perdu ce combat. Les nœuds Databricks de nodes-base ne l'appellent pas.

Je n'ai pas visé un vrai workspace. Le mock du lab sur :18203 répond à GET /api/2.0/secrets/get avec N8N-DBX-SECRET-WITNESS. n8n sur :18202. Le webhook dbx-space lie spaceId depuis le JSON. Journal d'accès du mock : GET /api/2.0/secrets/get?scope=s&key=k. Le corps du webhook contient le témoin.

Fausses pistes déjà consignées : requête restant sous /api/2.0/genie/spaces/ (alors .. était encodé - le lab exige qu'il en sorte) ; traiter un RCE sur l'hôte n8n comme un SUCCESS ; frapper un vrai workspace ; un reverse shell. Du théâtre. Le témoin est N8N-DBX-SECRET-WITNESS plus la ligne de requête du mock.

Lab

cd lab
./run.sh

Cibler uniquement http://127.0.0.1:18202 (n8n) et :18203 (mock). L'hôte des identifiants est le mock, pas un vrai workspace.

webhook-http=200
mock-request-line=GET /api/2.0/secrets/get?scope=s&key=k
webhook-witness=True
mock-secrets-get=True
witness=N8N-DBX-SECRET-WITNESS
SUCCESS N8N-DBX-PATH-JOIN

Le correctif

Encapsuler chaque id de chemin Databricks avec toPathSegment, comme VectorStoreDatabricks.

Références

  • github.com/n8n-io/n8n tag [email protected]
  • getSpace.operation.ts · toPathSegment · DatabricksVectorStore.ts
  • Correctifs proches : GHSA-89p4-6h98-c7xm · GHSA-rqch-9jrh-cr8w
  • Même produit : n8n-function-vm2
  • CWE-22

Licence

GNU Affero GPL v3.0. Voir LICENSE. Lab en loopback uniquement. Aucune garantie.

Télécharger l’outil