你正在使用Notepad++编辑代码,顺手点击菜单中的“文件→打开所在文件夹→cmd”,准备在命令行里敲几个命令。但跳出来的不是熟悉的命令提示符,而是Windows计算器。这不是恶作剧——攻击者已经通过篡改配置文件,悄无声息地劫持了你的命令行解释器。

5月26日,Notepad++开发团队发布了v8.9.6.1版本,紧急修复三项安全漏洞。其中两个是任意代码执行缺陷,可让攻击者在受害者机器上默默运行恶意程序。凡是还在使用v8.9.6或更早版本的用户,都被强烈建议立即升级。

打开网易新闻 查看精彩图片

这次更新中最严重的漏洞编号为CVE-2026-48778。它的攻击面直指Notepad++的配置文件config.xml,具体是其中的标签。编辑器在Parameters.cpp中通过NppXml::value()读取该值并直接存储,整个过程既没有合法性校验,也没有白名单机制或数字签名检查。当用户触发“打开所在文件夹→cmd”时,应用就用这个攻击者可控的字符串构造命令对象,再原样交给ShellExecute()执行——相当于把最终执行权完整交给了配置文件里写入的内容。安全研究人员用一个很简单的概念验证就确认了完整的代码执行能力:只把calc.exe塞进XML标签,本该弹出的cmd就变成了计算器。

更值得警惕的是,研究人员梳理了多条现实中可行的攻击路径。其一,同一用户账户下运行的任何进程都能直接改写%APPDATA%\Notepad++\config.xml,这意味着本地程序的权限已经足够。其二,攻击者可以构造一个恶意快捷方式(.lnk),利用-settingsDir=参数把Notepad++的配置目录重定向到自己控制的文件夹,从而植入恶意配置。其三,Notepad++支持用户自定义云同步路径,攻击者如果已侵入对应的云存储空间,就能通过下毒同步来污染配置文件。其四,社交工程场景下,看似无害的压缩包一旦被打开,就可以把被篡改的配置文件直接释放到AppData目录。也就是说,这既不是理论上难以触达的缺陷,也不是需要极高权限才能利用的脆弱点。

另一个漏洞CVE-2026-48800遵循了几乎相同的攻击模式,只不过把目标从config.xml换成了shortcuts.xml。这进一步说明,攻击者面对Notepad++的配置文件体系,能找到的入口并不单一。

目前,全部三个漏洞已在v8.9.6.1中得到修补,官方发布页提供了最新的安装包。但仅靠一次凑巧的更新,还不足以从机制上堵死这条攻击通道。安全研究人员同时建议Notepad++应加入许可命令行解释器的白名单(如cmd.exe、powershell.exe等),对可执行路径是否落在系统目录做严格校验,并在执行任何Shell命令前弹出用户确认对话框。企业环境尤需优先部署补丁,特别是那些用户目录存在共享或云同步配置的场景。