CVE-2020-36928CVE-2020-36928是影响Brother BRAgent 1.38版本的一个高危安全漏洞。该漏洞存在于WBA_Agent_Client Windows服务中,由于服务路径未正确使用引号包裹,攻击者可以利用Windows服务解析路径时的特性,在服务可执行文件路径之前的位置植入恶意可执行文件,从而实现权限提升。本地低权限攻击者通过创建特制的恶意程序并将其放置在服务路径的中间目录位置,利用Windows服务启动时的路径解析机制,使服务错误地执行攻击者的恶意程序。由于WBA_Agent_Client服务以LocalSystem最高权限运行,攻击成功后可获得系统完全控制权。该漏洞CVSS评分7.8,属于高危级别,需要本地访问即可利用,无需用户交互。
该漏洞的根本原因在于Windows服务的可执行文件路径配置不当。在Windows操作系统中,当服务配置的可执行文件路径包含空格且未被引号正确包裹时,系统会按照从左到右的顺序尝试解析路径中的每个空格分隔的部分作为可执行文件。Brother BRAgent的WBA_Agent_Client服务配置路径为:C:\Program Files (x86)\Brother\BRAgent\bragent.exe,由于路径中包含空格且未加引号,Windows服务控制管理器在启动服务时会首先尝试查找并执行C:\Program.exe,如果存在则直接执行,否则继续查找C:\Program Files\Brother.exe等。攻击者可以在C:\Program Files (x86)\目录下创建名为Program.exe的恶意可执行文件,或在C:\Program Files (x86)\Brother\下创建Brother.exe,当服务启动时会优先执行这些恶意程序。由于服务以LocalSystem权限运行,恶意代码也将以系统最高权限执行,从而实现权限提升。