Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
n8n-databricks-path-join — Prueba de concepto para un path-traversal (CWE-22) en n8n en nodos de Databricks: la entrada de webhook no autenticada escapa de la ruta de Genie para filtrar secretos PAT del workspace, con un laboratorio de loopback. | Kitploit
Herramientas/GitHubGitHub/abraxas/n8n-databricks-path-join
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebRecopilación de InformaciónVirtualización de SeguridadPruebas de PenetraciónLabs y Práctica
GitHub
abraxas/n8n-databricks-path-join

n8n-databricks-path-join

Prueba de concepto para un path-traversal (CWE-22) en n8n en nodos de Databricks: la entrada de webhook no autenticada escapa de la ruta de Genie para filtrar secretos PAT del workspace, con un laboratorio de loopback.

Ver Repositorio
23hace 8 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Abraxas Labs - n8n-databricks-path-join

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

Análisis: https://abraxaslabs.tech/research/n8n-databricks-path-join

n8n-databricks-path-join

n8n 2.42.0 - n8n GmbH

GHSA-89p4-6h98-c7xm y GHSA-rqch-9jrh-cr8w introdujeron toPathSegment: encodeURIComponent más rechazo de '' / . / ... getSpace.operation.ts concatena spaceId en ${host}/api/2.0/genie/spaces/${spaceId}. Vector Search getIndex y Files downloadFile son de la misma clase. LangChain VectorStoreDatabricks ya envuelve la ruta del índice. WHATWG new URL hace el resto. ../ se normaliza. El PAT de Databricks del workflow se va con ello.

La entrada no confiable de un webhook se convierte en GET /api/2.0/secrets/get bajo el token del workspace. Fuga de credenciales en Databricks, no RCE en el host de n8n.

IDaún sin CVE
CWECWE-22
CVSSAlto: 8.6 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
Producton8n
Afectadohasta 2.42.0 (86c23326); hermano de GHSA-89p4 / GHSA-rqch
Autenticaciónno autenticado en el webhook si un workflow víctima vinculó entrada no confiable
LicenciaGNU Affero GPL v3.0
Laboratoriosolo 127.0.0.1

Qué puede hacer un atacante

Alcanzar un webhook público, chat o trigger HTTP que fluya hacia Databricks Genie get-space (o Vector Search get-index, o Files download) con un id controlado por el atacante. El token del workflow entonces hace GET a /api/2.0/secrets/get. Si ese token puede leer el scope (típico PAT de administrador del workspace), la salida del nodo es el JSON value del secreto.

Un token sin ACL de secretos sigue devolviendo 403; eso aún demuestra que la petición salió de /genie. La descarga de Files necesita un ../ más profundo (prefijo más largo). Requiere una víctima que haya vinculado entrada no confiable a ese parámetro. Un nodo HTTP Request bloqueado (allowedHttpRequestDomains: none) no sustituye la codificación de los ids de Databricks.

Mismo producto, resto hermano: hidden Function vm2.

Cómo lo encontré

Mismo repaso de restos que el laboratorio de Function: diez búsquedas sobre [email protected] tras la oleada de GHSA del 16 de septiembre de 2026. La búsqueda de inyección de nodos buscaba hermanos incompletos de GHSA-89p4 (ids de recursos de la API pública) y GHSA-rqch (nombre de tabla de Supabase). Elastic, Adalo, Currents, el propio nodo de n8n. El helper existe porque ya perdieron esta batalla. Los nodos-base de Databricks no lo llaman.

No dirigí esto a un workspace real. El mock del laboratorio en :18203 responde a GET /api/2.0/secrets/get con N8N-DBX-SECRET-WITNESS. n8n en :18202. El webhook dbx-space vincula spaceId desde JSON. Registro de acceso del mock: GET /api/2.0/secrets/get?scope=s&key=k. El cuerpo del webhook contiene el testigo.

Peticiones erróneas ya registradas: solicitud permaneciendo bajo /api/2.0/genie/spaces/ (luego .. fue codificado - el laboratorio requiere que se deje); tratar el RCE del host n8n como SUCCESS; acceder a un workspace real; una reverse shell. Teatro. El testigo es N8N-DBX-SECRET-WITNESS más la línea de solicitud simulada.

Laboratorio

cd lab
./run.sh

Dirígete solo a http://127.0.0.1:18202 (n8n) y :18203 (mock). El host de credenciales es el mock, no un workspace real.

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 solución

Envuelve cada id de ruta de Databricks con toPathSegment, igual que VectorStoreDatabricks.

Referencias

  • github.com/n8n-io/n8n etiqueta [email protected]
  • getSpace.operation.ts · toPathSegment · DatabricksVectorStore.ts
  • Parcheados cercanos: GHSA-89p4-6h98-c7xm · GHSA-rqch-9jrh-cr8w
  • Mismo producto: n8n-function-vm2
  • CWE-22

Licencia

GNU Affero GPL v3.0. Consulta LICENSE. Solo para laboratorio de loopback. Sin garantía.

Descargar herramienta