n8n 是一款开源的工作流自动化平台。自 0.211.0 版本起至 1.120.4、1.121.1 和 1.122.0 之前的版本,其工作流表达式评估系统中存在一个严重的远程代码执行(RCE)漏洞。在某些条件下,由认证用户在工作流配置期间提供的表达式可能会在未充分与底层运行时隔离的执行上下文中被评估。经过身份验证的攻击者可利用此行为,以 n8n 进程的权限执行任意代码。成功利用该漏洞可能导致受影响实例被完全控制,包括未经授权访问敏感数据、修改工作流以及执行系统级操作。此问题已在 1.120.4、1.121.1 和 1.122.0 版本中得到修复。强烈建议用户升级到已修补的版本,该版本引入了额外的安全措施来限制表达式评估。如果无法立即升级,管理员应考虑以下临时缓解措施:仅允许完全受信任的用户创建工作流及编辑权限;和/或在强化环境中部署 n8n,限制操作系统权限和网络访问,以降低潜在利用的影响。这些临时措施并不能完全消除风险,仅应作为短期方案使用。
该检测模板采用多层次方法,无需认证即可识别存在漏洞的 n8n 实例。首先,模板探测常见的 n8n 端点(/rest/settings、/signin、/)以对应用程序进行指纹识别。然后,通过三种互补方法提取版本信息:
(1) Base64 Sentry 标签提取 - 解码 /signin 页面上的 <meta name="n8n:config:sentry"> 标签,该标签包含包含发布版本的 JSON;
(2) REST API 解析 - 查询 /rest/settings 端点,该端点以 JSON 格式返回版本元数据;
以及 (3) HTML 元标签分析 - 从标准 HTML 元标签和 JavaScript 变量中提取版本字符串。随后,使用 Nuclei 的 compare_versions() DSL 函数对每个提取的版本进行验证,判断其是否属于漏洞范围(0.211.0 - 1.120.3 或 1.121.0),以进行精确的语义化版本比较。这种多方法策略确保即使在个别端点被禁用或在不同 n8n 部署中配置不同的情况下,也能实现 100% 的检测率,覆盖效果比单一方法提高 6 倍。模板完全被动(检测过程中不实施利用),因此在生产环境中扫描是安全的。
nuclei -t CVE-2025-68613.yaml -u <目标IP>
或者,如果您想扫描主机列表,请执行:
nuclei -t CVE-2025-68613.yaml -l <list.txt>
使用风险自负,本人不对您在不拥有或未获扫描权限的基础设施上进行的任何非法活动负责。
本项目采用 MIT 许可证。