Windows打印机相关服务存在逻辑缺陷,可以被用来进行权限提升甚至可以实现远程任意代码执行,微软已于2021年6月8号发布安全补丁,对该缺陷进行修复,请尽快完成系统更新。

漏洞详情

AddPrinterDriverEx函数用来安装本地或者远程的打印机驱动[1]. 函数定义如下:

1
2
3
4
5
6
BOOL AddPrinterDriverEx(
_In_ LPTSTR pName,
_In_ DWORD Level,
_Inout_ LPBYTE pDriverInfo,
_In_ DWORD dwFileCopyFlags
);

该函数通过RPC方法调用spoolsv.exe进程中的RpcAddPrinterDriverEx接口。
在添加打印机驱动时有多个flag可以选择,我们发现有一个特殊的flag并没有在官方MSDN文档中出现,但是系统却在频繁的使用。
APD_INSTALL_WARNED_DRIVER = 0x00008000 [2]

在添加打印机时附上这个flag即可绕过服务端的安全校验,实现本地权限提升,甚至远程任意代码执行

漏洞时间轴

日期 事件
2020-07-20 腾讯安全玄武实验室向微软报送安全问题
2020-08-06 微软回复正在处理相关问题,请求延长漏洞保密期限到2020年12月
2020-08-07 微软确认安全问题存在,正在研究如何处理相关问题
2020-10-09 微软表示需要更多的时间修复问题,请求将漏洞保密期限延长到2021年1月12号
2021-01-11 微软在安全补丁发布前发现补丁存在问题,请求将漏洞保密期延长到2021年3月9号
2021-01-12 协调微软提前分配CVE编号,微软分配CVE编号CVE-2021-1675
2021-02-23 微软再次请求延长漏洞保密期限到2021年6月8号
2021-06-08 微软最终发布安全补丁修复该安全问题

漏洞发现者

本漏洞由腾讯安全玄武实验室的Zhipeng Huo(@R3dF09)发现并报告 [3]
根据微软安全公告 AFINE的Piotr Madej和绿盟的Yunhai Zhang 也独立发现并报告了该漏洞

相关引用: