CVE:CVE-2007-5587
CNNVD:CNNVD-200710-413
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平台上获得系统级权限。
solution:Upgrade macrovision safedisc to a higher version than *