Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
n8n-databricks-path-join — Proof-of-concept per un path traversal (CWE-22) in n8n nei nodi Databricks: l'input di un webhook non autenticato elude il percorso Genie per esfiltrare i segreti PAT del workspace, con un laboratorio loopback. | Kitploit
Strumenti/GitHubGitHub/abraxas/n8n-databricks-path-join
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebRaccolta InformazioniVirtualizzazione per la SicurezzaPenetration TestingLab e Pratica
GitHub
abraxas/n8n-databricks-path-join

n8n-databricks-path-join

Proof-of-concept per un path traversal (CWE-22) in n8n nei nodi Databricks: l'input di un webhook non autenticato elude il percorso Genie per esfiltrare i segreti PAT del workspace, con un laboratorio loopback.

Vedi Repository
215 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

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 e GHSA-rqch-9jrh-cr8w hanno introdotto toPathSegment: encodeURIComponent più il rifiuto di '' / . / ... getSpace.operation.ts concatena spaceId in ${host}/api/2.0/genie/spaces/${spaceId}. Vector Search getIndex e Files downloadFile sono della stessa classe. LangChain VectorStoreDatabricks avvolge già il percorso dell'indice. Il resto lo fa WHATWG new URL. ../ viene normalizzato. Il PAT Databricks del workflow se ne va con esso.

Input webhook non attendibile diventa GET /api/2.0/secrets/get sotto il token del workspace. Credential leak su Databricks, non RCE sull'host n8n.

IDnessuna CVE al momento
CWECWE-22
CVSSHigh: 8.6 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
Prodotton8n
Affettofino alla 2.42.0 (86c23326); gemello di GHSA-89p4 / GHSA-rqch
Authnon autenticato al webhook se un workflow vittima ha associato input non attendibile
LicenzaGNU Affero GPL v3.0
Labsolo 127.0.0.1

Cosa può fare un attaccante

Colpire un webhook pubblico, una chat o un trigger HTTP che confluisce in Databricks Genie get-space (o Vector Search get-index, o Files download) con un id controllato dall'attaccante. Il token del workflow esegue quindi GET su /api/2.0/secrets/get. Se quel token può leggere lo scope (tipico PAT di amministratore del workspace), l'output del nodo è il JSON value del segreto.

Un token senza ACL sui segreti restituisce comunque 403; anche questo dimostra che la richiesta ha lasciato /genie. Il download di Files richiede un ../ più profondo (prefisso più lungo). Serve una vittima che abbia associato input non attendibile a quel parametro. Un nodo HTTP Request bloccato (allowedHttpRequestDomains: none) non sostituisce la codifica degli id Databricks.

Stesso prodotto, residuo gemello: hidden Function vm2.

Come l'ho trovato

Stesso passaggio sui residui del lab Function: dieci ricerche su [email protected] dopo l'ondata di GHSA del 16 settembre 2026. La ricerca sulla node-injection cercava gemelli incompleti di GHSA-89p4 (id risorsa della Public API) e GHSA-rqch (nome tabella Supabase). Elastic, Adalo, Currents, il nodo n8n stesso. L'helper esiste perché hanno già perso questa battaglia. Databricks nodes-base non lo chiama.

Non l'ho puntato contro un workspace reale. Il mock del lab su :18203 risponde a GET /api/2.0/secrets/get con N8N-DBX-SECRET-WITNESS. n8n su :18202. Il webhook dbx-space associa spaceId dal JSON. Log di accesso del mock: GET /api/2.0/secrets/get?scope=s&key=k. Il body del webhook contiene il witness.

Vicoli ciechi già registrati: richiesta che resta sotto /api/2.0/genie/spaces/ (allora .. veniva codificato - il lab richiede che sia uscito); trattare l'RCE sull'host n8n come SUCCESS; colpire un workspace reale; una reverse shell. Teatro. Il witness è N8N-DBX-SECRET-WITNESS più la riga di richiesta del mock.

Lab

cd lab
./run.sh

Target solo http://127.0.0.1:18202 (n8n) e :18203 (mock). L'host delle credenziali è il mock, non un workspace reale.

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

La correzione

Avvolgere ogni id di percorso Databricks con toPathSegment, come fa VectorStoreDatabricks.

Riferimenti

  • github.com/n8n-io/n8n tag [email protected]
  • getSpace.operation.ts · toPathSegment · DatabricksVectorStore.ts
  • Correlati già corretti: GHSA-89p4-6h98-c7xm · GHSA-rqch-9jrh-cr8w
  • Stesso prodotto: n8n-function-vm2
  • CWE-22

Licenza

GNU Affero GPL v3.0. Vedi LICENSE. Solo lab su loopback. Nessuna garanzia.

Scarica lo strumento