Macrovision SafeDisc 驱动存在本地权限提升漏洞
来源:岁月联盟
时间:2007-10-27
Macrovision SafeDisc
描述:
BUGTRAQ ID: 26121
Macrovision的Safedisc是目前最常用在商业数据光盘上的防拷机制。
Safedisc的secdrv.sys实现上存在漏洞,本地安全者可能利用此漏洞控制系统。
Safedisc所提供的secdrv.sys驱动中的以下代码段:
.text:00015E2C cmp [ebp+var_10], 0CA002813h
.text:00015E33 jz short loc_15E69
IOCTL为METHOD_NEITHER,该驱动没有正确地处理这个方式:
.text:00015ED9 call dword ptr [eax+10h] ; Internal
Dispatcher
.text:00015EDC mov [ebp+var_1C], eax
.text:00015EDF cmp [ebp+var_1C], 0Ah
.text:00015EE3 jz short loc_15EFC
.text:00015EE5 mov eax, [ebp+arg_4]
.text:00015EE8 mov dword ptr [eax], 0C0000001h
.text:00015EEE mov eax, [ebp+arg_4]
.text:00015EF1 and dword ptr [eax+4], 0
.text:00015EF5 mov eax, 0C0000001h
.text:00015EFA jmp short loc_15F21
.text:00015EFC ;
---------------------------------------------------------------------------
.text:00015EFC
.text:00015EFC loc_15EFC: ; CODE XREF:
sub_15E12+D1j
.text:00015EFC mov ecx, [ebp+var_4]
.text:00015EFF mov esi, [ebp+var_C]
.text:00015F02 mov eax, [ebp+arg_0]
.text:00015F05 mov edi, [eax+3Ch] ; Output Buffer
(Irp->UserBuffer)
.text:00015F08 mov eax, ecx ; Inline memcpy
.text:00015F0A shr ecx, 2
.text:00015F0D rep movsd
.text:00015F0F mov ecx, eax
.text:00015F11 and ecx, 3
.text:00015F14 rep movsb
没有正确地检查用户提供的缓冲区便将输入缓冲区的前4个DWORD拷贝到了输出缓冲区,因此可以覆盖任意地址,甚至内核地址。利用这个漏洞的限制是InputBuffer必须为固定的值。本地安全者可以利用这个漏洞在Windows平台上获得系统级权限。
厂商补丁:
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.macrovision.com/