0x01 漏洞信息
漏洞类型:基于堆栈的缓冲区溢出[ CWE-121 ],暴露的IOCTL(访问控制不足)[ CWE-782 ] 影响:代码执行允许特权提升 远程可利用:否 本地可利用:是 CVE名称: CVE-2019-19452
0x02 漏洞描述
Patriot Memory是一家总部位于美国的技术公司,设计和制造内存模块,闪存驱动器,移动配件和游戏设备。
在处理IoControlCode 0x80102040时,在Viper驱动程序RGB 1.1版中发现缓冲区溢出漏洞。本地攻击者可以利用此漏洞,因此获得NT AUTHORITY \ SYSTEM特权。
IOCTL代码0x80102050和0x80102054允许具有低特权的用户从IO端口读取或向其写入1/2/4字节。奇热可以通过多种方式来利用它来最终以提升的特权运行代码。
0x03 安全建议
1.1版和所有以前的版本在每个受支持的Windows版本中都容易受到攻击(安装程序:Patriot Viper RGB v1.1.exe)
解决方案和解决方法:
Patriot Memory已发布版本MSIO_191231_v1.2,该版本已修复报告中的漏洞。
这些漏洞是由Core Security Exploit团队的Ricardo Narvaja和Lucas Dominikow发现的。
0x04 漏洞分析和利用验证
基于堆栈的缓冲区溢出特权提升
- 对版本1.0的漏洞的利用验证发现了溢出漏洞的存在,该溢出可以覆盖ZwOpenSection和ZwMapViewOfSection的参数。
1.0版和1.1版之间的二进制代码差异表明,尽管对这些函数的参数进行了检查,但先前的溢出漏洞仍存在未进行修补,而CoreLabs在随后研究中能够控制其大小。
可以在下面找到有关版本1.0的信息:
https://github.com/active-labs/Advisories/blob/master/ACTIVE-2019-012.md
https://www.activecyber.us/activelabs/viper-rgb-driver-local-privilege-escalation-cve-2019-18845
在版本1.1中,控制器分析IoControlCodes并到达此位置,将IoControlCode与0x80102040进行比较。
.text:0000000000001518 lea rcx, aIrpMjDeviceCon ; "IRP_MJ_DEVICE_CONTROL" .text:000000000000151F call DbgPrint .text:0000000000001524 mov r11d, [rbp+18h] .text:0000000000001528 cmp r11d, 80102040h .text:000000000000152F jz