CVE:CVE-2006-3445
CNNVD:CNNVD-200611-207
Microsoft Windows是美国微软（Microsoft）公司发布的一系列操作系统。
Microsoft的Agent Active控件在解析畸形的字符文件时存在整数溢出。在agentdpv.dll的ReadWideString函数中：
711a2cc4     mov     eax,[ebp+0xc]
711a2cc7     cmp     eax,ebx
711a2cc9     jz      agentdpv!ReadWideStringW+0x6b (711a2d0e)
711a2ccb     lea     eax,[eax+eax+0x2]
711a2ccf     push    eax
711a2cd0     call    agentdpv!operator new (711aaa6c)
在内存中解压时.acf格式会将字符串的长度附加到字符串上。如果要触发这个漏洞，攻击者需要在解压之前在字符串的长度字段中设置很大的值7FFFFFFF以创建畸形的.acf文件。当Microsoft Agent解析该.acf文件时，就会在解压文件后读取这个长度：
711a2cc4     mov     eax,[ebp+0xc] ; length of string
在使用所提供的长度计算为宽字符串所分配的内存大小时可能会出现整数溢出，导致分配0字节：
711a2ccb     lea     eax,[eax+eax+0x2]
711a2ccf     push    eax
711a2cd0     call    agentdpv!operator new (711aaa6c)
之后仍会从之前所分配的内存读取字符串并拷贝到缓冲区，导致堆溢出。
711a2ce8     push    ebx
711a2ce9     add     edx,edx
711a2ceb     push    edx
711a2cec     push    eax
711a2ced     push    edi
711a2cee     call    dword ptr [ecx+0xc]{ole32!CMemStm::Read (771e7a1f)}
攻击者可能通过构建特制网页来利用此漏洞，如果用户查看了该网页，则可能允许远程执行代码。
solution:Upgrade microsoft windows_2000 to a higher version than *:sp4,and avoid the version *:sp4; Upgrade microsoft windows_2003_server to a higher version than 64-bit,itanium,r2,sp1,and avoid the version 64-bit,itanium,r2,sp1; Upgrade microsoft windows_xp to a higher version than *,*:sp2,and avoid the version *:sp2