Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
n8n-databricks-path-join — 针对 Databricks 节点中 n8n 路径遍历漏洞(CWE-22)的概念验证:未经身份验证的 webhook 输入可逃逸 Genie 路径,从而泄露工作区 PAT 密钥,并附带一个回环实验环境。 | Kitploit
工具/GitHubGitHub/abraxas/n8n-databricks-path-join
漏洞分析漏洞利用Web应用程序漏洞利用信息收集安全虚拟化渗透测试实验室与实践
GitHubabraxas/n8n-databricks-path-join

n8n-databricks-path-join

针对 Databricks 节点中 n8n 路径遍历漏洞(CWE-22)的概念验证:未经身份验证的 webhook 输入可逃逸 Genie 路径,从而泄露工作区 PAT 密钥,并附带一个回环实验环境。

查看仓库
215天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

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 和 GHSA-rqch-9jrh-cr8w 引入了 toPathSegment:encodeURIComponent 加上拒绝 '' / . / ..。getSpace.operation.ts 将 spaceId 拼接进 ${host}/api/2.0/genie/spaces/${spaceId}。Vector Search 的 getIndex 和 Files 的 downloadFile 属于同一类问题。LangChain 的 VectorStoreDatabricks 已经对索引路径做了包装。剩下的交给 WHATWG new URL。../ 会被规范化。工作流的 Databricks PAT 也随之被带走。

不受信任的 webhook 输入在工作区令牌下变成 GET /api/2.0/secrets/get。这是 Databricks 上的凭据泄露,而非 n8n 主机的 RCE。

ID暂无 CVE
CWECWE-22
CVSSHigh: 8.6 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
产品n8n
受影响版本至 2.42.0(86c23326);GHSA-89p4 / GHSA-rqch 的同类问题
认证若受害工作流绑定了不受信任的输入,则 webhook 处无需认证
许可证GNU Affero GPL v3.0
实验环境仅限 127.0.0.1

攻击者能做什么

访问一个公开的 webhook、chat 或 HTTP 触发器,其数据流会进入 Databricks Genie get-space(或 Vector Search get-index,或 Files download),并携带攻击者可控的 id。工作流令牌随后会 GET /api/2.0/secrets/get。如果该令牌可以读取该 scope(典型的工作区管理员 PAT),节点输出就是密钥的 value JSON。

没有 secrets ACL 的令牌仍会返回 403;但这仍能证明请求已离开 /genie。Files download 需要更深的 ../(更长的前缀)。需要有一个受害者将不受信任的输入绑定到该参数。锁定过的 HTTP Request 节点(allowedHttpRequestDomains: none)并不能替代对 Databricks id 进行编码。

同一产品,同类遗留问题:hidden Function vm2。

我是如何发现的

与 Function 实验相同的遗留问题排查:在 2026 年 9 月 16 日 GHSA 浪潮之后,对 [email protected] 进行了十次搜寻。节点注入搜寻旨在寻找 GHSA-89p4(Public API 资源 id)和 GHSA-rqch(Supabase 表名)的不完整同类问题。Elastic、Adalo、Currents,以及 n8n 节点本身。该辅助函数之所以存在,是因为他们已经在这次斗争中吃过亏。Databricks nodes-base 并未调用它。

我并未将此针对真实工作区。:18203 上的实验 mock 对 GET /api/2.0/secrets/get 返回 N8N-DBX-SECRET-WITNESS。n8n 运行在 :18202。Webhook dbx-space 从 JSON 绑定 spaceId。Mock 访问日志:GET /api/2.0/secrets/get?scope=s&key=k。Webhook 响应体包含该 witness。

已记录的弯路:请求停留在 /api/2.0/genie/spaces/ 之下(此时 .. 被编码——实验要求它离开);将 n8n 主机 RCE 视为 SUCCESS;攻击真实工作区;反弹 shell。都是做戏。witness 是 N8N-DBX-SECRET-WITNESS 加上 mock 请求行。

实验环境

cd lab
./run.sh

目标仅限 http://127.0.0.1:18202(n8n)和 :18203(mock)。凭据主机是 mock,而非真实工作区。

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

修复方案

像 VectorStoreDatabricks 一样,用 toPathSegment 包装每一个 Databricks 路径 id。

参考资料

  • github.com/n8n-io/n8n 标签 [email protected]
  • getSpace.operation.ts · toPathSegment · DatabricksVectorStore.ts
  • 附近已修补:GHSA-89p4-6h98-c7xm · GHSA-rqch-9jrh-cr8w
  • 同一产品:n8n-function-vm2
  • CWE-22

许可证

GNU Affero GPL v3.0。参见 LICENSE。仅限回环实验环境。无任何担保。

下载工具