Notepad++零点击远程代码执行(RCE)漏洞:路径遍历(CVE-2026-52884)
漏洞摘要 产品:Notepad++ v8.9.6.1(最新修补版本) 类型:CWE-42(路径遍历)/CWE-59(不当链接解析) 影响:无用户确认的任意代码执行 CVSS 3.1:7.8(高) — AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H 绕过:CVE-2026-48800(shortcuts.xml命令验证) 描述 CVE-2026-48800补丁在调用ShellExecute()之前,在Command::run()(RunDlg.cpp)中添加了isInTrustedDirectory()验证。该函数检查解析的可执行路径是否在受信任的目录下:C:\Program Files\ C:\Program Files (x86)\ C:\Windows\System32\ C:\Windows\ 漏洞:isInTrustedDirectory()在检查之前未对此路径进行标准化。它使用基于前缀的检查(PathIsPrefix()或相应的)来匹配以受信任目录字符串开头的路径。在受信任目录前缀后使用..or o的路径遍历通过了检查,同时解析到一个不受信任的位置。 确认的绕过向量 绕过1:路径遍历(关键) shortcuts.xml中的命令 解析路径 警告? 结果 C:\Users\[USERNAME]\Downloads\mimikatz.exe 不受信任的路径 ✅ 是 — 显示警告 阻止 C:\Windows\System32\..\..\Users\[USERNAME]\Downloads\mimikatz.exe 相同的mimikatz.exe ❌ 没有警告 静默执行 C:\Program Files\..\..\Users\[USERNAME]\Downloads\payload.exe 相同的payload ❌ 没有警告 静默执行 证明:在v8.9.6.1中,C:\Windows\System32\..\..\Users\[USERNAME]\Downloads\mimikatz.exe在shortcuts.xml中执行mimikatz而没有任何安全对话框,而直接路径C:\Users\[USERNAME]\Downloads\mimikatz.exe则正确显示警告。 绕过2:可信可执行文件作为启动器(高) shortcuts.xml中的命令 解析的可执行文件 警告? 结果 cmd.exe /c calc.exe C:\Windows\System32\cmd.exe(受信任) ❌ 无 执行静默 powershell.exe -ExecutionPolicy Bypass -Command calc.exe C:\Windows\System32\...\powershell.exe(受信任) ❌ 无 执行静默 rundll32.exe javascript:...\mshtml,RunHTMLApplication C:\Windows\System32\rundll32.exe(受信任) ❌ 无 执行静默 证明:在v8.9.6.1中,cmd.exe /c calc.exe在shortcuts.xml中执行calc.exe而没有任何安全对话框。 根本原因分析 RunDlg.cpp中的isInTrustedDirectory()函数执行类似于以下功能的检查:bool isInTrustedDirectory(const wchar_t * path) { wchar_t trustedDirs[][MAX_PATH] = { L
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡