Hotdry.

Article

Notepad++零点击RCE漏洞:路径遍历利用链与防御方案

深入分析Notepad++路径遍历导致的RCE漏洞利用链,揭示Windows搜索路径劫持机制,并提供可落地的检测规则与防御参数。

2026-06-10security

漏洞概述

Notepad++ 作为全球广泛使用的开源文本编辑器,近期暴露的多个高危漏洞揭示了原生 Windows 应用在路径处理上的共性安全风险。CVE-2025-49144 与 CVE-2026-25926 均属于非受控搜索路径漏洞(CWE-427),攻击者通过操纵 Windows 可执行文件搜索顺序,可在用户无感知的情况下实现远程代码执行(RCE),甚至获取 SYSTEM 级权限。

这类漏洞的隐蔽性在于:用户仅需执行正常的安装或文件打开操作,恶意代码便通过路径劫持自动触发,形成事实上的 "零点击" 攻击面。

技术原理:Windows 搜索路径劫持

Windows 系统解析未限定路径的可执行文件时,遵循特定的搜索顺序:首先检查当前工作目录(CWD),然后依次遍历系统 PATH 环境变量中的目录。当应用程序使用相对路径调用系统工具(如regsvr32.exeexplorer.exe)时,若未显式指定绝对路径,操作系统会优先执行当前目录下同名的恶意文件。

Notepad++ 安装程序(npp.*.installer.x64.exe)在注册组件时,若未在预期位置找到regsvr32.exe,便会回退到当前工作目录搜索。这一设计缺陷被安全研究员利用,构造出完整的权限提升利用链。

CVE-2025-49144 利用链详解

受影响版本

  • 漏洞版本:8.8.1 及更早版本
  • 修复版本:8.8.2
  • CVSS 评分:8.6(高危)

攻击流程

攻击者构造的利用链包含三个关键环节:

1. 恶意文件植入 攻击者将精心构造的regsvr32.exe与合法 Notepad++ 安装程序打包至同一 ZIP 压缩包。恶意可执行文件通常设置为隐藏属性,用户解压后仅能看到安装程序。

2. 权限提升 Payload 恶意regsvr32.exe内置特权提升逻辑:首先启用SeDebugPrivilege调试权限,随后通过遍历进程列表定位winlogon.exe(以 SYSTEM 权限运行的系统进程),复制其访问令牌,最终生成具有 SYSTEM 权限的命令行 Shell。

3. 触发执行 当用户运行安装程序时,程序在安装过程中尝试调用regsvr32.exe注册 COM 组件。由于当前工作目录包含恶意文件,Windows 优先执行攻击者植入的 Payload,而非系统目录下的合法程序。

漏洞根因

根据 GitHub 安全公告(GHSA-g5rj-m8mm-cgw6),根本原因在于 "安装程序对可执行文件路径处理不当,导致从当前工作目录意外执行"。安装程序在调用regsvr32.exe时未使用绝对路径(如C:\Windows\System32\regsvr32.exe),而是依赖系统搜索机制,从而暴露于 DLL / 可执行文件劫持风险。

CVE-2026-25926:Explorer 路径劫持

2026 年初披露的 CVE-2026-25926 展示了类似攻击模式的变种。该漏洞影响 8.9.2 之前版本,当 Notepad++ 尝试启动 Windows 资源管理器(Explorer)时,未指定explorer.exe的绝对路径。攻击者可在项目目录放置恶意explorer.exe,当用户通过 Notepad++ 打开文件夹功能时触发执行。

此漏洞的 CVSS 评分为 7.3,虽低于安装程序漏洞,但利用门槛更低 —— 无需诱导用户运行安装程序,仅需用户打开位于受控目录下的文件即可触发。

防御方案与检测参数

紧急缓解措施

1. 版本升级 立即升级至 Notepad++ 8.9.2 或更高版本。官方已在相关版本中修复路径处理逻辑,强制使用绝对路径调用系统可执行文件。

2. 文件系统审计 使用 PowerShell 扫描非标准位置的敏感可执行文件:

Get-ChildItem -Path C:\ -Filter "regsvr32.exe" -Recurse -ErrorAction SilentlyContinue | 
    Where-Object { $_.DirectoryName -notmatch "System32|SysWOW64" }

3. 应用程序白名单 通过 Windows Defender Application Control (WDAC) 或 AppLocker 限制regsvr32.exeexplorer.exe等系统程序的执行路径,仅允许从C:\Windows\System32及其子目录运行。

检测规则配置

EDR / 终端检测规则

  • 监控进程创建事件(Windows Event ID 4688),检测从非系统目录启动的regsvr32.exeexplorer.exe
  • 配置行为检测规则:当 Notepad++ 进程创建子进程且可执行文件路径包含非标准目录时触发告警
  • 检测异常进程父子关系:notepad++.exeregsvr32.exe(来自非 System32 路径)

Sigma 规则示例

title: Notepad++ Path Hijacking Detection
logsource:
  product: windows
  category: process_creation
detection:
  selection:
    ParentImage|endswith: '\notepad++.exe'
    Image|endswith: 
      - '\regsvr32.exe'
      - '\explorer.exe'
  filter:
    Image|startswith: 
      - 'C:\Windows\System32\'
      - 'C:\Windows\SysWOW64\'
  condition: selection and not filter

安全开发建议

对于 Windows 平台应用开发者,应遵循以下路径安全准则:

  1. 始终使用绝对路径调用系统可执行文件,避免依赖 Windows 搜索顺序
  2. 调用前验证目标文件的数字签名与哈希值,确保执行的是合法系统组件
  3. 设置安全搜索路径通过SetDllDirectory()SetSearchPathMode()等 API 限制 DLL / 可执行文件搜索范围
  4. 安装程序加固在安装流程中锁定当前工作目录,或显式设置安全的工作目录路径

总结

Notepad++ 路径遍历 RCE 漏洞揭示了 Windows 生态中长期存在的搜索路径劫持风险。这类漏洞的利用不依赖复杂内存破坏技术,而是巧妙利用操作系统既定的文件解析机制,使得检测与防御更具挑战性。

对于企业安全团队,建议将此类攻击纳入威胁模型,重点监控安装程序执行场景与异常进程创建行为。同时,建立软件供应链审查机制,对从非官方渠道获取的安装包进行完整性校验,阻断攻击者的初始入侵向量。

参考来源

security

内容声明:本文无广告投放、无付费植入。

如有事实性问题,欢迎发送勘误至 i@hotdrydog.com