CVE-2021-47874CVE-2021-47874是VFS for Git 1.0.21014.1版本中存在的严重安全漏洞,源于GVFS.Service Windows服务的二进制路径未使用引号包裹。该漏洞允许本地低权限攻击者通过服务路径劫持技术,在Windows系统上实现权限提升,最终以LocalSystem最高权限执行任意代码。由于VFS for Git是微软开发的Git虚拟文件系统扩展,广泛应用于大型代码仓库管理场景,该漏洞影响了大量Windows开发环境。攻击者只需具备本地访问权限和低权限账户即可实施攻击,无需用户交互,攻击成功后将获得系统级完全控制权,可窃取敏感数据、安装后门或进一步横向移动。
该漏洞属于Windows服务路径劫持(Service Path Hijacking)类型。当Windows服务配置中的BinaryPathName未使用引号包裹时,系统会按照路径中的空格进行分段解析。例如,若服务路径为C:\Program Files\VFS for Git\GVFS.Service.exe而非"C:\Program Files\VFS for Git\GVFS.Service.exe",Windows会首先尝试执行C:\Program.exe,若不存在则继续尝试C:\Program Files\GVFS.Service.exe。攻击者可将恶意可执行文件命名为Program.exe并放置在C:\根目录,当GVFS.Service服务启动或系统重启时,恶意程序将以LocalSystem身份被加载执行。此漏洞利用的关键条件包括:服务路径包含空格且未加引号、攻击者对中间路径目录具有写入权限、能够触发服务重启或等待系统启动。由于GVFS.Service通常配置为自动启动,攻击者可在系统启动时自动获得高权限执行。