CVE:CVE-2005-2120
CNNVD:CNNVD-200510-080
Microsoft Windows即插即用(PnP)允许操作在安装新硬件时能够检测到这些硬件。
Microsoft Windows 2000 SP4， XP SP1 SP2 中的即插即用服务存在栈溢出漏洞。允许攻击者通过在注册表子键中构建带有多个'\'来触发wsprintfW函数溢出。
Microsoft Windows即插即用功能中存在缓冲区溢出漏洞。UMPNPMGR.DLL用于管理即插即用服务，为访问设备管理和通知服务提供RPC接口。UMPNPMGR代码包含有对wsprintfW的调用，用于在栈缓冲区中创建各种格式化字符串。在有些情况下仅验证用户输入是否相当于HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum已有的子键。尽管这个注册表分支受到保护，但通过提供任意长度的连续反斜线(如"HTREE\ROOT\\\\0\\\\\\\\")可以欺骗注册表安全性。
UMPNPMGR接口{8D9F4E40-A03D-11CE-8F69-08003E30051B}中的PNP_GetDeviceList(opnum 10)和PNP_GetDeviceListSize(opnum 11)函数都存在这个漏洞。对于前者，攻击者可以通过传送有效的子键名称到达有漏洞的wsprintfW调用；而对于后者，由于SplitDeviceInstanceString标记字符串的方式，函数必须接收到有空的第二个(如"HTREE\\ROOT\0")或第三个(如"HTREE\ROOT\\0")组件的密钥名称才能到达GetDeviceInstanceListSiz中有漏洞的wsprintfW调用。
成功利用这个漏洞的攻击者可以完全控制受影响的系统。请注意这个漏洞与MS05-039中的即插即用漏洞无关。
solution:Upgrade microsoft windows_2000 to a higher version than *:sp4,and avoid the version *:sp4; Upgrade microsoft windows_xp to a higher version than *:sp1,*:sp2,and avoid the version *:sp1,*:sp2