首页 -> 安全研究

安全研究

安全漏洞
Microsoft IE 6 urlmon.dll长URL缓冲区溢出漏洞(MS06-042)

发布日期:2006-08-23
更新日期:2006-08-25

受影响系统:
Microsoft Internet Explorer 6.0 SP1
描述:
BUGTRAQ  ID: 19667
CVE(CAN) ID: CVE-2006-3869

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服务器来发动攻击。

<*来源:Dejan Kovacevic
        Derek Soeder (dsoeder@eeye.com
        Nsfocus安全小组 (security@nsfocus.com
  
  链接:http://secunia.com/advisories/21557/
        http://research.eeye.com/html/advisories/published/AD20060824.html
        http://www.nsfocus.net/index.php?act=advisory&do=view&adv_id=44
        http://www.microsoft.com/technet/security/bulletin/ms06-042.mspx
        http://www.us-cert.gov/cas/techalerts/TA06-220A.html
*>

建议:
临时解决方法:

* 在IE中禁用HTTP 1.1协议。

厂商补丁:

Microsoft
---------
Microsoft已经为此发布了一个安全公告(MS06-042)以及相应补丁:
MS06-042:Cumulative Security Update for Internet Explorer (918899)
链接:http://www.microsoft.com/technet/security/bulletin/ms06-042.mspx

补丁下载:
http://www.microsoft.com/downloads/details.aspx?FamilyId=C335CAA9-B9E6-403D-A039-2D3DCA723653&displaylang=en

浏览次数:3883
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障