IPBUF安全漏洞报告
English
CVE-2026-41646 CVSS 5.5 中危

CVE-2026-41646 Nuclei 本地文件读取漏洞

披露日期: 2026-05-08

漏洞信息

漏洞编号
CVE-2026-41646
漏洞类型
本地文件读取
CVSS评分
5.5 中危
攻击向量
本地 (AV:L)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Nuclei

相关标签

Nuclei本地文件读取沙箱绕过CVE-2026-41646

漏洞概述

Nuclei漏洞扫描器在3.0.0至3.8.0前版本存在安全漏洞。其JS协议运行时允许模板通过require()函数读取本地.js和.json文件,绕过了默认的文件访问限制。攻击者可利用此漏洞获取本地敏感信息。

技术细节

该漏洞本质上是Nuclei JavaScript协议运行时的沙箱逃逸问题。由于Nuclei支持基于模板的扫描,且允许在模板中嵌入JavaScript代码,若运行时环境隔离不当,将引发严重风险。在3.0.0至3.8.0之前的版本中,开发者未禁用Node.js环境下的require()函数调用权限。攻击者通过构造特制的YAML模板,嵌入包含require('path/to/file')的恶意JS代码。一旦用户执行该模板,Nuclei引擎会在执行上下文中解析该代码,进而调用require()函数读取本地文件系统中的.js和.json文件,直接绕过了预设的本地文件访问防御机制,导致敏感信息泄露。

攻击链分析

STEP 1
1. 模板构造
攻击者编写恶意的Nuclei模板,在JavaScript代码块中利用require()函数指定目标本地文件路径。
STEP 2
2. 诱导执行
攻击者诱导受害者或管理员使用受影响版本的Nuclei(3.0.0 - 3.8.0)扫描并执行该恶意模板。
STEP 3
3. 漏洞触发
Nuclei引擎解析模板,执行JavaScript代码,由于沙箱限制失效,require()函数成功加载本地文件。
STEP 4
4. 信息泄露
本地.js或.json文件的内容被读取并输出到终端或日志中,导致敏感信息泄露。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// PoC for CVE-2026-41646 // Vulnerability: Local File Read via require() in Nuclei JS Protocol id: CVE-2026-41646-poc info: name: Nuclei Local File Read PoC severity: high description: Reads local .json file using require() javascript: - code: | // Attempt to read a local configuration file // This works in Nuclei < 3.8.0 try { const data = require('/etc/passwd.json'); // Example path, usually requires .js or .json // Or require('./config.json') console.log("File content read successfully:"); console.log(JSON.stringify(data)); } catch (e) { console.log("Error reading file: " + e.message); } args: # Example arguments if needed

影响范围

Nuclei >= 3.0.0, < 3.8.0

防御指南

临时缓解措施
建议立即将Nuclei组件升级到修复版本3.8.0或以上。如无法立即升级,应严格限制扫描任务的执行权限,避免运行来源不明的第三方模板,并对现有模板进行代码审计,检查是否包含require()调用。

参考链接