PC-Doctor 是计算机诊断系统主流供应商,其产品安装在1 亿台电脑上。本周被网络安全初创公司 SafeBreach Labs 爆出其软件中的严重漏洞后,PC-Doctor 有意淡化该漏洞严重性。SafeBreach 向戴尔报告了该漏洞,后者于5月28日推出了漏洞补丁,并于6月20日发布了安全咨询。
位于美国旧金山湾区的 SafeBreach 通过探测戴尔 SupportAssist 软件发现了该漏洞,而 SupportAssist 正是以 PC-Doctor 为基础的。
戴尔向媒体透露称,截止6月21日早晨,90% 的受影响系统均已更新。其他无数原始设备制造商 (OEM) 有可能受到影响。
而位于美国内达华州雷诺市的 PC-Doctor 则对媒体表示,想要利用该漏洞还是很难的。
想要利用该漏洞,必须以具备管理员权限的用户或进程修改系统 PATH 环境变量,添加可被非管理员用户写入的文件夹,并构造一个可利用 PC-Doctor 管理员权限的动态链接库 (DLL)。不修改任何默认 Windows 设置就利用该漏洞是不可能的。
该公司补充道:据称该漏洞针对 PC-Doctor 的戴尔硬件支持服务 (Hardware Support Service)——该服务包含在戴尔 SupportAssist 中,还影响 PC-Doctor Toolbox for Windows。这两种产品均长期驻留系统以监视硬件问题,且可按需运行。2018年5月28日至2019年6 月17日期间可应用紧急修复程序。
戴尔被迫推出补丁
探测戴尔硬件支持服务时,SafeBreach Labs 发现该服务执行的多个 PC-Doctor 程序会收集本机操作系统和硬件信息。这些可执行程序加载的 DLL 库具有从一系列系统资源收集数据的权限。
问题发生在系统以不安全方式加载 .dll 文件的时候。黑客可以创建自己的 .dll 文件,修改 PATH 环境变量,让系统从自己文件夹中的未签名代码库加载这些自编的 .dll 文件。
戴尔通知媒体的动作很迅速:SafeBreach 发现的漏洞是一个 PC-Doctor 漏洞,是随商用 PC 和家庭 PC 版戴尔 SupportAssist 发售的第三方组件漏洞。
PC-Doctor 漏洞可致提权
研究人员指出,系统搜索并加载 DLL 库时用的是 LoadLibraryW 函数而不是 LoadLibraryExW,这就给用户留下了以特定标志位定义搜索顺序的机会,可以让系统加载位于用户文件夹中的 DLL 文件。
SafeBreach Labs 安全研究员 Peleg Hadar 在其报告中注释道:我虚拟机的 c:\python27 目录下包含一份允许任意经验证用户写入的访问控制列表 (ACL)。这就让提权操作十分容易了,普通用户都能写入缺失的 DLL 文件并以 SYSTEM 权限执行代码。需要指出的是,管理员用户或进程必须:
(1) 设置目录 ACL 允许对非管理员用户账户的访问;
(2) 修改系统 PATH 环境变量将该目录包含进来。
这样可以使未授权用户提升自己在系统中的权限。
6月21日晚间发布的安全咨询中,戴尔警示称:该漏洞影响 2.0 版的商用 PC 戴尔 SupportAssist 和 3.2.1 版的家庭 PC 戴尔 SupportAssist 及所有之前的版本。