Rapid7 Vulnerability & Exploit Database

MS13-069 Microsoft Internet Explorer CCaret Use-After-Free

Back to Search

MS13-069 Microsoft Internet Explorer CCaret Use-After-Free



This module exploits a use-after-free vulnerability found in Internet Explorer, specifically in how the browser handles the caret (text cursor) object. In IE's standards mode, the caret handling's vulnerable state can be triggered by first setting up an editable page with an input field, and then we can force the caret to update in an onbeforeeditfocus event by setting the body's innerHTML property. In this event handler, mshtml!CCaret::`vftable' can be freed using a document.write() function, however, mshtml!CCaret::UpdateScreenCaret remains unaware of this change, and still uses the same reference to the CCaret object. When the function tries to use this invalid reference to call a virtual function at offset 0x2c, it finally results a crash. Precise control of the freed object allows arbitrary code execution under the context of the user.


  • corelanc0d3r
  • sinn3r <sinn3r@metasploit.com>




Module Options

To display the available options, load the module within the Metasploit console and run the commands 'show options' or 'show advanced':

msf > use exploit/windows/browser/ms13_069_caret
msf exploit(ms13_069_caret) > show targets
msf exploit(ms13_069_caret) > set TARGET < target-id >
msf exploit(ms13_069_caret) > show options
    ...show and set options...
msf exploit(ms13_069_caret) > exploit

Time is precious, so I don’t want to do something manually that I can automate. Leveraging the Metasploit Framework when automating any task keeps us from having to re-create the wheel as we can use the existing libraries and focus our efforts where it matters.

– Jim O’Gorman | President, Offensive Security