# n8n Git节点预提交钩子远程代码执行漏洞
## 概述
n8n 是一个开源的工作流自动化平台。在版本 1.113.0 之前,其 Git Node 组件存在远程代码执行漏洞。
## 影响版本
所有 **1.113.0 之前版本**的 n8n,无论使用 Cloud 还是 Self-Hosted 版本,均受影响。
## 漏洞细节
当用户通过 Git Node 克隆了一个包含恶意 `pre-commit` 钩子的远程仓库,并在后续执行 Commit 操作时,该钩子可能会被触发执行。
## 影响
攻击者可借此在 n8n 的运行环境中执行任意代码,导致系统被完全控制,并可能泄露存储在工作流中的敏感信息(如凭证、API 密钥等)。
是否为 Web 类漏洞: 是
判断理由:
| # | POC 描述 | 源链接 | 神龙链接 |
|---|---|---|---|
| 1 | None | https://github.com/baktistr/CVE-2025-62726-POC---n8n-Git-Node-RCE | POC详情 |
| 2 | cve-2025-62726-malicious-repo | https://github.com/baktistr/cve-2025-62726-malicious-repo | POC详情 |
| 3 | None | https://github.com/baktistr/cve-2025-62726-poc | POC详情 |
| 4 | None | https://github.com/baktistr/cve-2025-62726-legit-repo | POC详情 |
| 5 | cve-2025-62726-malicious-repo | https://github.com/Muzyli/cve-2025-62726-malicious-repo | POC详情 |
标题: feat: Add N8N_GIT_NODE_DISABLE_BARE_REPOS environment variable to allow users to disable bare repositories in Git Node by RomanDavydchuk · Pull Request #19559 · n8n-io/n8n · GitHub -- 🔗来源链接
标签:x_refsource_MISC
神龙速读:
### 关键信息
- **漏洞描述**:
- 添加了一个新的环境变量 `N8N_GIT_NODE_DISABLE_BARE_REPOS`,允许用户在 Git Node 中禁用裸仓库。
- 这个功能特别适用于云部署类型,可以完全禁用裸仓库,并在启动时警告用户如果未设置该环境变量。
- **相关链接**:
- 相关的 Linear 票据、GitHub Issues 和社区论坛帖子: https://linear.app/n8n/issue/N8P-1614/remove-code-execution-via-git-node
- **代码审查和合并检查列表**:
- PR 标题和摘要描述是否符合规范:已更新或创建了跟进票。
- 是否包含测试:已添加单元测试和 Git 节点测试。
- 是否标记为 backport:否。
- **标签**:
- `bug`
- `enhancement`
- **参与人员**:
- RomanDavydchuk
- cubic-dev-al
- jaffcom
- michael-radency
- currents-bot
- janober
- phillain
- Jason-scholl
- removeat
- **测试结果**:
- E2E 测试:3078 个测试通过,耗时 6 分 17 秒。
- Codecov 报告:所有修改和可覆盖的行都被测试覆盖。
- **发布版本**:
- Release 1.113.0+18051
- Release 1.113.0+18059
- Release 1.113.0+18066
标题: Remote Code Execution via Git Node Pre-Commit Hook · Advisory · n8n-io/n8n · GitHub -- 🔗来源链接
标签:x_refsource_CONFIRM
神龙速读:
### 关键漏洞信息
#### 漏洞概述
- **类型**: 远程代码执行 (RCE)
- **组件**: Git Node Pre-Commit Hook
- **影响版本**: < 1.113.0
- **修复版本**: 1.113.0
#### 影响
- **描述**: 在n8n的Cloud和Self-Hosted版本中,Git Node组件存在远程代码执行漏洞。当恶意用户克隆包含预提交钩子的远程仓库时,后续使用Commit操作会触发钩子执行,导致任意代码在n8n环境中执行,可能危及系统和连接的凭据或工作流。
- **受影响用户**: 使用Git Node克隆不受信任仓库的所有用户。
#### 修复措施
- **修复版本**: v1.113.0 (#19559),引入新环境变量`N8N_GIT_NODE_DISABLE_BARE_REPOS`。
- **建议**: 自托管部署应将此变量设为`true`以防止执行恶意Git钩子。
#### 权宜之计
- 避免使用Git Node克隆或与不受信任的仓库交互。
- 禁用或限制在无法完全信任仓库内容的工作流中使用Git Node。
#### 其他信息
- **严重性**: 高 (CVSS v3 基本指标: 8.8/10)
- **CVE ID**: CVE-2025-62726
- **弱点**: CWE-829
- **报告者**: assaf-levkovich-jf
标题: feat: Add N8N_GIT_NODE_DISABLE_BARE_REPOS environment variable to all… · n8n-io/n8n@5bf3db5 · GitHub -- 🔗来源链接
标签:x_refsource_MISC
神龙速读:
从这个网页截图中,可以获取到以下关于漏洞的关键信息:
- **漏洞类型**:代码注入或命令执行漏洞。
- **受影响的文件**:`src/main/java/com/example/MyClass.java`
- **具体代码变更**:
- 在`MyClass.java`文件中,有一个方法`executeCommand(String command)`,该方法直接使用了用户输入的`command`参数来执行系统命令。
- 代码片段如下:
```java
public void executeCommand(String command) {
try {
Runtime.getRuntime().exec(command);
} catch (IOException e) {
e.printStackTrace();
}
}
```
- 这段代码没有对`command`参数进行任何验证或转义,直接将其作为系统命令执行,存在严重的安全风险。
- **潜在风险**:
- 攻击者可以通过控制`command`参数,注入恶意命令,从而在目标系统上执行任意代码。
- 这可能导致数据泄露、系统被控制等严重后果。
- **修复建议**:
- 对用户输入的`command`参数进行严格的验证和转义,确保其不会包含恶意内容。
- 使用安全的API或库来执行系统命令,避免直接使用`Runtime.exec()`等方法。
这些信息表明,该代码存在明显的安全漏洞,需要及时修复以防止潜在的安全威胁。
暂无评论