🛡️ n8n CVE-2025-65964 漏洞检测工具
CVE-2025-65964 是 n8n 自动化平台中的一个高危远程代码执行漏洞,CVSS 评分高达 9.4。本工具提供了一种快速、安全的检测方法,帮助您识别 n8n 实例是否受此漏洞影响。
该漏洞源于 Git 节点允许工作流设置任意的 Git 配置值(包括 core.hooksPath)。恶意工作流可通过此漏洞将 Git 钩子重定向至攻击者控制的脚本,从而在服务器上执行任意代码。
✨ 功能特性
- 🚀 一键检测:通过简单的命令行即可快速检测目标 n8n 实例的版本。
- 🔍 版本识别:精准提取并解析 n8n 版本号。
- ⚠️ 漏洞判定:自动判断版本是否在受影响范围(0.123.1 → 1.119.1)内。
- 🛡️ 安全无害:工具仅读取公开的版本信息,不会触发漏洞或对目标造成任何影响。
- 📋 清晰输出:提供直观的检测结果和升级建议。
📦 安装指南
系统要求
- Python 3.6 或更高版本
- pip 包管理器
安装步骤
-
下载检测脚本
将
safe_cve-2025-65964_checker.py保存到您的本地目录。 -
安装依赖库
脚本仅依赖
requests库,使用以下命令安装:pip install requests
📖 使用说明
基础用法
在终端中执行以下命令,将目标 URL 替换为您的 n8n 实例地址:
python safe_cve-2025-65964_checker.py https://your-n8n.example.com
如果 n8n 实例使用非默认端口,请指定端口号:
python safe_cve-2025-65964_checker.py https://n8n.example.org:5678
输出示例
检测到存在漏洞的版本:
[+] Detected version: n8n/1.118.0
[-] VULNERABLE to CVE-2025-65964 → Upgrade NOW!
检测到已修复的版本:
[+] Detected version: n8n/1.123.5
[+] SAFE - version is already patched
无法检测版本信息:
[?] Version string hidden or endpoint blocked
典型使用场景
- 安全自查:定期扫描企业内部部署的 n8n 实例,确保所有实例都已升级至安全版本。
- 渗透测试:在获得授权的前提下,对目标 n8n 系统进行漏洞验证。
- 应急响应:漏洞披露后,快速排查受影响系统并采取相应措施。
💻 核心代码
版本检测与漏洞判断
以下是检测工具的核心实现,通过访问目标 URL 的 /webhook/test 路径获取版本信息,并基于版本号判断漏洞状态:
import requests
import sys
def check_n8n_version(url):
"""
检测 n8n 实例版本并判断是否存在 CVE-2025-65964 漏洞
Args:
url: n8n 实例的基础 URL
"""
try:
# 向目标发送请求,获取响应内容
r = requests.get(f"{url.rstrip('/')}/webhook/test", timeout=10, verify=False)
# 从响应文本中提取版本号
if "n8n/" in r.text:
version = r.text.split("n8n/")[1].split('"')[0]
print(f"[+] Detected version: n8n/{version}")
# 解析版本号并判断是否在受影响范围内
major, minor, patch = map(int, version.split('.'))
# 漏洞版本范围:0.123.1 ≤ 版本 ≤ 1.119.1,或主版本号小于1
if (major == 1 and minor <= 119 and patch <= 1) or (major < 1):
print("[-] VULNERABLE to CVE-2025-65964 → Upgrade NOW!")
else:
print("[+] SAFE - version is already patched")
else:
print("[?] Version string hidden or endpoint blocked")
except Exception as e:
print(f"[!] Connection failed: {e}")
if __name__ == "__main__":
# 检查命令行参数
if len(sys.argv) != 2:
print("Usage: python safe_cve-2025-65964_checker.py https://your-n8n.example.com")
sys.exit(1)
# 执行检测
check_n8n_version(sys.argv[1])
受影响版本范围
根据漏洞公告,受影响版本及修复版本范围如下:
| 状态 | 版本范围 | |
|---|---|---|
| 受影响版本 | n8n 0.123.1 → 1.119.1 | |
| 已修复版本 | 1.119.2 及以上版本 | FINISHED |
| 6HFtX5dABrKlqXeO5PUv/84SoIo+TE3firf/5vX8AZ58m0DJYSOTBQ6vj8fXxStw |