首页 | 安全文章 | 安全工具 | Exploits | 本站原创 | 关于我们 | 网站地图 | 安全论坛
  当前位置:主页>安全文章>文章资料>Exploits>文章内容
Microsoft Internet Explorer 9 MSHTML - CMarkup::ReloadIn­CompatView Use-Afte
来源:http://blog.skylined.nl 作者:Skylined 发布时间:2016-12-16  
<!--
 
Source: http://blog.skylined.nl/20161213001.html
 
Synopsis
 
A specially crafted web-page can trigger a use-after-free vulnerability in Microsoft Internet Explorer 9. During a method call, the this object can be freed and then continues to be used by the code that implements the method. It appears that there is little to no time for an attacker to attempt to control the contents of the freed memory before the re-use, which would allow remote code execution.
 
Known affected software and attack vectors
 
Microsoft Internet Explorer 9
 
An attacker would need to get a target user to open a specially crafted web-page. Disabling Java should prevent an attacker from triggering the vulnerable code path.
Repro.html:
-->
 
<!DOCTYPE>
<script defer>
  document.design = "on";
</script>
<q dir="ltr">
<ruby dir="rtl">
 
<!--
Details
 
By switching the a document's design property to on in a deferred script, MSIE 9 can be made to reload a web page using CMarkup::Reload. This method calls CDoc::Compat, which indirectly calls CScript::~CScript, which releases the CMarkup object used as this in CMarkup::Reload. The relevant stack for the freeing of this CMarkup object is:
 
    76e8c484 kernel32!Heap+0x00000014
    6780c4d8 MSHTML!CMarkup::`vector deleting destructor'+0x00000026
    6776fb9b MSHTML!CScript::~CScript+0x00000152
    67816a0d MSHTML!CScript::Release+0x00000053
    6751f7e7 MSHTML!CWindow::Super+0x000004c4
    675209f7 MSHTML!CWindow::Super2With+0x00000032
    679b05f8 MSHTML!CDoc::Compat+0x000000a0
    679c00d4 MSHTML!CMarkup::Reload+0x0000021f
 
Immediately after returning to CMarkup::Reload, the code will use the (now freed) CMarkup object. When page heap is enabled, this lead to an immediate access violation.
 
Exploit
 
I did not immediately find a way to control the freed memory before the reuse following the CDoc::Compat call. I did not immediately find other locations in the code where the same stale pointer to the CMarkup object is used after it has been freed. It may not be possible to exploit this use-after-free, as there does not appear to be an easy window of opportunity to modify the freed memory before its reuse.
 
However, when loading the repro in MSIE with page heap disabled, I do see crashes from time to time, but in different locations in the code. This indicates that one or more of the following should be true:
 
There are ways to modify the freed CMarkup object before it is reused.
There are other locations where the freed CMarkup object is used after it has been freed, and the freed CMarkup object can be modified before this happens.
There could be other stale pointers to freed memory that get reused, and there are ways to modify the freed memory they point to before that reuse.
As these other crash stacks do not include CMarkup::Reload, it seems most likely that they are caused by the second or third option, which could indicate that the bug is in fact exploitable.
 
Time-line
 
5 May 2014: This vulnerability was found through fuzzing.
14 May 2014: This vulnerability was submitted to ZDI.
3 July 2014: This vulnerability was rejected by ZDI.
9 July 2014: This vulnerability was submitted to EIP.
July/August 2014: This vulnerability was rejected by EIP.
13 August 2014: This vulnerability was submitted to i.
Date unknown: This issue was withdrawn from i.
Date unknown: This vulnerability was address by Microsoft.
13 December 2016: Details of this vulnerability are released.
-->
 
[推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论:
  热点文章
·CVE-2012-0217 Intel sysret exp
·Linux Kernel 2.6.32 Local Root
·Array Networks vxAG / xAPV Pri
·Novell NetIQ Privileged User M
·Array Networks vAPV / vxAG Cod
·Excel SLYK Format Parsing Buff
·PhpInclude.Worm - PHP Scripts
·Apache 2.2.0 - 2.2.11 Remote e
·VideoScript 3.0 <= 4.0.1.50 Of
·Yahoo! Messenger Webcam 8.1 Ac
·Family Connections <= 1.8.2 Re
·Joomla Component EasyBook 1.1
  相关文章
·Microsoft Internet Explorer 9
·Microsoft Internet Explorer 9
·Nagios < 4.2.4 - Privilege Esc
·Edge SkateShop Blind SQL Injec
·Nagios < 4.2.2 - Arbitrary Cod
·Orthanc DICOM Server 1.1.0 - M
·Nidesoft MP3 Converter 2.6.18
·OsiriX DICOM Viewer 8.0.1 - Me
·Samsung Devices KNOX Extension
·ConQuest DICOM Server 1.4.17d
·Samsung Devices KNOX Extension
·DCMTK 3.6.0 storescp - Stack B
  推荐广告
CopyRight © 2002-2022 VFocuS.Net All Rights Reserved