Macrovision SafeDisc 驱动存在本地权限提升漏洞

来源:岁月联盟 编辑:zhuzhu 时间:2007-10-27
Macrovision SafeDisc 驱动存在本地权限提升漏洞 受影响系统:
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/

图片内容