CVE-2022-50917CVE-2022-50917是ProtonVPN 1.26.0版本中存在的一个高危安全漏洞,漏洞类型为未引号服务路径(Unquoted Service Path)。该漏洞位于ProtonVPN的WireGuard服务配置中,由于Windows操作系统在解析服务路径时未正确使用引号包裹包含空格的路径,攻击者可以利用这一特性在服务启动时以提升的权限执行任意代码。具体来说,当Windows服务尝试启动可执行文件时,如果路径中包含空格且未使用引号,操作系统会从左到右尝试解析路径,在遇到空格时可能会将空格前后的内容识别为不同的命令或参数。攻击者可以在这些可能被误解析的位置放置恶意可执行文件,当服务重启或系统启动时,恶意文件将被以SYSTEM级别的高权限执行,从而实现权限提升和远程代码执行。本地低权限攻击者只需具有写入文件系统的能力即可利用此漏洞,无需任何用户交互。
该漏洞的根本原因在于ProtonVPN的WireGuard服务在Windows系统中的服务路径配置存在问题。当服务路径包含空格且未使用引号时,Windows服务控制管理器(SCM)在启动服务时会按照路径解析规则进行查找。例如,如果服务路径为C:\Program Files\ProtonVPN\WireGuard\wg.exe,Windows会首先尝试执行C:\Program.exe,如果不存在则尝试执行C:\Program Files\wg.exe,依此类推。攻击者可以利用这一解析机制,在C:\Program.exe位置放置恶意可执行文件,由于服务以SYSTEM权限运行,恶意代码也将以最高权限执行。漏洞利用的关键在于WireGuard服务的启动权限配置以及路径中空格的处理方式。攻击者需要具备本地文件系统写入权限,可以将恶意可执行文件放置在服务启动时可能解析的中间路径位置。当服务重启或系统启动时,恶意代码将自动执行,实现权限提升和持久化控制。