法国安全团队 Vupen 在 Pwn2Own 2012 利用两个 0day 漏洞攻下了 Windows 7 中的 IE9。这两个 0day 漏洞分别为 IE 沙盒 Bypass 漏洞和 IE 堆溢出漏洞,其中后者根据大赛规定被提交给了微软,并随着 MS12-037 公告的发布而被修复。它的成因为 mshtml.dll 中的 CTableLayout::CalculateMinMax
函数在以 col 标签的 span 属性值为循环次数向堆内存中写入数据时,未对 span 进行有效的校验,若 span 值设置不当就会导致堆溢出进而 RCE。
mshtml.dll 是 IE 中的重要组件,负责解析页面中的 HTML 和 CSS。不少知名漏洞都与它有关,关于 IE 主要组件的更多细节可参阅 Internet Explorer Architecture
影响范围:
IE 版本
Microsoft Internet Explorer 6 ~ 9
操作系统
Microsoft Windows XP
Microsoft Windows Server 2003
Microsoft Windows Vista
Microsoft Windows 7