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)} 攻击者可能通过构建特制网页来利用此漏洞,如果用户查看了该网页,则可能允许远程执行代码。
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)} 攻击者可能通过构建特制网页来利用此漏洞,如果用户查看了该网页,则可能允许远程执行代码。