CVE:CVE-2006-3869
CNNVD:CNNVD-200608-353
Internet Explorer是微软发布的非常流行的WEB浏览器。
Internet Explorer的MS06-042补丁引入了URLMON.DLL文件，而这个文件中由于错误的使用lstrcpynA函数而导致了堆溢出漏洞。CMimeFt::Create为CMimeFt类的新例程分配了390h字节的堆块，在这个块的+160h偏移处有一个104h (MAX_PATH)字节的ASCII字符串：
1A4268DD push 390h ; cb
1A4268E2 call ??2@YAPAXI@Z ; operator new(uint)
如果访问URL能够得到Web服务器的GZIP或deflate编码的响应的话，CMimeFt::Start就会试图使用lstrcpynA API函数将URL拷贝到104h字节的字符串缓冲区，但却传送了824h(十进制为2084)的最大长度参数，这是URL通常所能使用的最大长度：
1A426199 push 824h ; iMaxLength
1A42619E push eax ; lpString2
1A42619F add esi， 160h
1A4261A5 push esi ; lpString1
1A4261A6 call ds:lstrcpynA
这样CMimeFt类例程中的字段及临近的堆块内容都可能被恶意URL中攻击者所提供的数据覆盖。
攻击者可以创建恶意WEB页面诱使用户访问，从而以该用户身份执行任意任意命令。如果该用户是管理员，则攻击者可以完全控制用户所在系统。攻击者可以自己创建恶意Web服务器，也可以利用一些使用HTTP/1.1协议和数据压缩的Web服务器来发动攻击。
solution:Upgrade microsoft ie to a higher version than 6.0:sp1,and avoid the version 6.0:sp1