Qemu和KVM VNC服务器远程拒绝服务漏洞

2008-12-23T00:00:00
ID SSV:4589
Type seebug
Reporter Root
Modified 2008-12-23T00:00:00

Description

BUGTRAQ ID: 32910

QEMU和KVM都是开放源码的模拟器软件。

Qemu和KVM的VNC服务器在处理特制的报文时可能出现死循环,导致拒绝服务的情况。

vnc.c文件的protocol_client_msg()函数负责处理入站的VNC低层消息,以下是有漏洞的代码段:

/-----------

vnc.c 1185: static int protocol_client_msg(VncState vs, uint8_t data, size_t len) 1186: { 1187: int i; 1188: uint16_t limit; 1189:
1190: switch (data[0]) {

...

1201: case 2: 1202: if (len == 1) 1203: return 4; 1204:
1205: if (len == 4) 1206: return 4 + (read_u16(data, 2) * 4);

  • -----------/

当VNC服务器接收到由\x02\x00\x00\x00组成的消息时,read_u16()函数会返回0。由于调用该函数的len参数总为4,这就会触发死循环。

Fabrice Bellard QEMU 0.9.1 Qumranet KVM 79 Qumranet KVM 36 厂商补丁:

Fabrice Bellard

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

<a href=http://fabrice.bellard.free.fr/qemu/ target=_blank>http://fabrice.bellard.free.fr/qemu/</a>

Qumranet

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

<a href=http://kvm.qumranet.com/kvmwiki/Front_Page target=_blank>http://kvm.qumranet.com/kvmwiki/Front_Page</a>

                                        
                                            
                                                http://www.coresecurity.com/content/vnc-remote-dos