Broken Browser
  • Menu ▾
    • Browser Workshop
    • Musings
    • About
  • Browser Workshop
  • Musings
  • About

IE10 EoP: Enumerating New Window Object During Redirect is EXPLOITABLE

2012-06-18 :: browser-workshop :: eop-rce

I found that opening a new window, saving a reference to opener in Math, and then enumerating the window object with for..in in a setTimeout just as the server redirect fired caused a crash rated...

[Read more]

IE10 Sandbox Bypass: Triggering a Download and Going Back Removes Sandbox Flags

2012-06-07 :: browser-workshop :: sandbox-bypass

I found that a sandboxed window could escape its sandbox by triggering a file download (.zip, .exe, .wmv, etc.) and then calling history.back(). After the back navigation, the page loaded without...

[Read more]

IE10 Sandbox Bypass: Flash getURL with javascript: Target Reaches Sandboxed Window

2012-06-05 :: browser-workshop :: sandbox-bypass

After Win8 Release Preview re-enabled javascript: URLs in sandboxed iframes (having disabled them in Win8 Consumer Preview), I found that Flash's getURL method could reach a named sandboxed window...

[Read more]

IE10 UXSS: Sandbox Paradox — javascript: URL in Sandboxed iframe Gives Cross-Origin DOM Access

2012-06-05 :: browser-workshop :: uxss

I found that loading a cross-origin URL inside a sandboxed iframe and then setting window[0].location to a javascript: URI gave the attacker script execution in the iframe's context with access to...

[Read more]

IE10: X-Frame-Options Header Bypassed via mhtml: Protocol in Sandboxed iframe

2012-06-01 :: browser-workshop :: misc

I found that loading an MHTML file inside a sandboxed iframe using the mhtml: protocol prefix, and then navigating the inner iframe twice to the target URL, bypassed the X-Frame-Options: DENY or...

[Read more]

IE10 DoS: Cached document.links Collection After Redirect Crashes in jscript9 CrossSite Marshal

2012-05-29 :: browser-workshop :: dos

I found that injecting elements into a window before its server redirect and caching the document.links collection caused a crash when the cached collection was accessed after the redirect, as...

[Read more]

IE10 DoS: pushState to mhtml: URL Then window.open Crashes in urlmon StrCmpCW

2012-05-29 :: browser-workshop :: dos

Setting an mhtml: prefix on the current URL via history.pushState and then opening a new window caused a null pointer dereference in KERNELBASE!StrCmpCW during urlmon's redirect security check,...

[Read more]

IE10 UXSS: pushState + Redirect + history.back() Retains Cross-Origin DOM Access

2012-05-28 :: browser-workshop :: uxss

I found that pushing a redirect URL into an iframe's history with pushState, reloading to complete the redirect, then calling history.back() on the top window left the iframe appearing to belong to...

[Read more]

IE10 Metro: Loading mhtml from Sandboxed iframe Breaks Out to Top Window Without Showing Address Bar

2012-05-23 :: browser-workshop :: sandbox-bypass

I found that in IE10 Metro, navigating a fully sandboxed iframe to an MHTML file caused the MHTML content to open in the top window rather than stay contained in the iframe. This bypassed the sandbox...

[Read more]

IE10 Metro: Back Gesture Can Be Spoofed with Oversized Scrollable Div and iframe

2012-05-16 :: browser-workshop :: address-bar-spoof

I found that an evil page could trick touch-screen users who performed the back swipe gesture (moving a finger right to go back) by creating an oversized horizontally-scrollable container with the...

[Read more]

UXSS: Meta-Refresh to about:blank Inherits Parent Domain Instead of iframe Domain

2012-05-11 :: browser-workshop :: uxss

I found that when an iframe used a <meta http-equiv="refresh"> tag to navigate itself to about:blank, the resulting about:blank inherited the domain of the parent page rather than the iframe's own...

[Read more]

IE10 Metro: Page Reload with Server Redirect Does Not Show Address Bar

2012-05-11 :: browser-workshop :: address-bar-spoof

In IE10 Metro, navigating to a new URL briefly showed the address bar so the user could see where they were going. I found that using location.reload() with a server-side redirect to a different URL...

[Read more]

IE10: Content and Address Bar Spoof via onunload Sync XMLHttpRequest Freeze

2012-05-07 :: browser-workshop :: address-bar-spoof

I found that an onunload handler could replace the page's content and then freeze the browser thread using a synchronous XMLHttpRequest to a never-responding server endpoint. This left the address...

[Read more]

IE10 UXSS: Caching document.all from New Window Before Server Redirect

2012-05-02 :: browser-workshop :: uxss

I found another variant of the document.all caching technique, this time using window.open rather than a modeless dialog. Saving a reference to document.all from a newly opened window before its...

[Read more]

IE10: msSetPointerCapture Allows iframe to Intercept Clicks Outside Its Bounds

2012-04-30 :: browser-workshop :: misc

I found that msSetPointerCapture combined with setCapture inside an iframe continued delivering pointer events — including mouse coordinates and click events — even when the user's pointer was...

[Read more]

IE10 DoS: msSetPointerCapture on Destroyed Element Crashes on Scrollbar Mouseover

2012-04-27 :: browser-workshop :: dos

Calling msSetPointerCapture on an element and then destroying that element via outerHTML = '' caused a crash when the user moused over any scrollbar afterward. The fault occurred in...

[Read more]

IE10 DoS: Script Element Appended to createHTMLDocument Crashes Browser

2012-03-15 :: browser-workshop :: dos

Appending a script element with innerText set to a value into a document created via document.implementation.createHTMLDocument("") caused a crash in...

[Read more]

IE10: Referrer Spoofing via history.replaceState + Server Redirect + Reload

2012-03-14 :: browser-workshop :: address-bar-spoof

I found that using history.replaceState to point the current history entry at a redirect URL, then calling location.reload(), caused IE10 to load the redirect target while preserving the original...

[Read more]

IE10: Rendering Almost Any File as HTML via pushState + Server Redirect + Reload

2012-03-13 :: browser-workshop :: misc

I found that using history.pushState to inject a redirect URL into the navigation history, followed by history.go(0) to reload, caused IE10 to render the redirect target using the previous page's...

[Read more]

EoP: Flash innerHTML Random Crash is PROBABLY_EXPLOITABLE

2012-03-02 :: browser-workshop :: eop-rce

I found that repeatedly reloading a Flash object via innerHTML in a tight onkeypress loop caused a crash in Flash11f rated PROBABLY_EXPLOITABLE. Each keypress replaced the DOM with a new Flash object...

[Read more]

IE10 EoP: history.pushState Redirect to Blob URL then Reload is EXPLOITABLE

2012-02-28 :: browser-workshop :: eop-rce

I found that pushing a server-redirect URL pointing at blob: into the history stack with history.pushState, then reloading with history.go(0), caused a crash rated EXPLOITABLE in...

[Read more]

IE10: Blob Image URLs Cross Sandbox Boundaries via postMessage

2012-02-27 :: browser-workshop :: misc

I found that blob URLs created by the parent page could be sent to a sandboxed iframe via postMessage, and the sandboxed iframe could load them as image sources and even read the pixel data via...

[Read more]

IE10 DoS: Loading HTC Behavior from Blob URL via Server Redirect Crashes Browser

2012-02-27 :: browser-workshop :: dos

I found that creating a blob with HTML content that referenced an HTC behavior (style="behavior:url(1)") and then navigating to it via a server redirect caused a crash in...

[Read more]

IE10 DoS: Blob URL in showModalDialog Creates Invisible Modal That Locks the Browser

2012-02-24 :: browser-workshop :: dos

Passing "blob:" as the URL to showModalDialog() opened an invisible modal window — one that was present but not rendered — making the entire browser unusable until the process was killed.

[Read more]

IE10 EoP: Invalid Content-Type on Blob URL Server Redirect is PROBABLY_EXPLOITABLE

2012-02-24 :: browser-workshop :: eop-rce

Building on the blob-redirect technique, I found that using an invalid content type string (like "INVALID") when creating the blob caused a crash rated PROBABLY_EXPLOITABLE when the server redirected...

[Read more]

IE10: Rendering HTML Blob Content via Server Redirect Bypasses Blob URL Restriction

2012-02-24 :: browser-workshop :: misc

Blob URLs were not supposed to be usable as iframe src or browser navigation targets — they were intended only for images, scripts, CSS, and workers. I found that this restriction could be bypassed...

[Read more]

IE10 EoP: window.open in Destroyed iframe Triggers EXPLOITABLE DEP Violation

2012-02-22 :: browser-workshop :: eop-rce

I found that if window.open("javascript:1", "_self") was called inside an iframe while an error notification dialog was pending — and the parent simultaneously destroyed that iframe — IE10 crashed...

[Read more]

IE10 UXSS: XMLHTTP in Redirected iframe with designMode Accesses Cross-Origin Content

2012-02-15 :: browser-workshop :: uxss

I found that setting document.designMode = "Off" inside an iframe before a server redirect triggered a convenient reload, and that ActiveXObject("Microsoft.XMLHTTP") created during that window...

[Read more]

IE10 UXSS: createPopup document.write in Redirected iframe Changes Popup Origin

2012-02-13 :: browser-workshop :: uxss

I found that if a cross-origin redirecting iframe used createPopup().document.write() on the parent, the resulting popup's URL became that of the iframe's post-redirect origin. Since the popup's...

[Read more]

UXSS: Caching Modal External Object and Sharing document via returnValue

2012-01-09 :: browser-workshop :: uxss

I found two related issues in how modal/modeless dialogs handled returnValue and the external object across cross-origin redirects. The first allowed cooperative cross-origin sharing — the opener...

[Read more]

IE10 UXSS: Caching document.all Collection Survives Server Redirect

2011-12-27 :: browser-workshop :: uxss

I noticed that saving a reference to document.all from inside a modeless dialog, before the dialog's page redirected to a different origin, preserved cross-origin access to the redirected document....

[Read more]

IE10 UXSS: Caching Window Reference via HTC in Math Object Survives Redirect

2011-12-26 :: browser-workshop :: uxss

I found that a window reference stored inside a native JavaScript object like Math survived a cross-origin server redirect. The key insight was that storing a reference in a plain variable did not...

[Read more]

IE10 EoP: htmlFile ActiveX Reload + setTimeout document.open/close is PROBABLY_EXPLOITABLE

2011-12-23 :: browser-workshop :: eop-rce

Creating an htmlFile ActiveX object, refreshing its document, and then triggering a document.open(); document.close() pair via an injected image error handler inside a setTimeout caused a crash rated...

[Read more]

IE10 DoS: Injected iFrame Redirect + Calling Non-Existent Method Triggers Stack Buffer Overrun

2011-12-22 :: browser-workshop :: dos

Injecting an iframe that immediately redirected, and then calling a non-existent method inside that iframe via execScript after the redirect completed, caused a stack buffer overrun...

[Read more]

IE10 UXSS: Cached XHR Object Retains Cross-Origin Access After Redirect

2011-12-22 :: browser-workshop :: uxss

By capturing an XMLHttpRequest object from a newly opened window before the window redirected to a different domain, the cached XHR reference retained the ability to make requests in the context of...

[Read more]

IE10 DoS: createPopup setInterval Crashes Browser After Redirect

2011-12-20 :: browser-workshop :: dos

Opening a new window that would soon redirect, injecting an iframe into it, creating a createPopup from that iframe, and then calling setInterval from the popup's window caused a crash after the...

[Read more]

IE10 UXSS: Blob URL Entropy Is Low Enough to Brute-Force Cross-Origin Image Data

2011-12-14 :: browser-workshop :: uxss

IE10's URL.createObjectURL() generated Blob URLs with insufficient randomness. Image blob URLs were readable by any domain in the same window — including cross-origin iframes. The only protection was...

[Read more]

IE10 DoS: Web Worker Sending XHR to a Blob URL Crashes the Browser

2011-12-14 :: browser-workshop :: dos

Creating a Blob URL in the main page and then spawning a Web Worker that sent an XHR to any blob URL — even just "blob:" — caused IE10 to crash.

[Read more]

IE10 DoS: document.normalize() Crashes the Browser

2011-12-08 :: browser-workshop :: dos

Calling document.normalize() on a complex DOM in IE10 Preview 4 caused a crash. The crash was found while a W3C spec page loaded and called the method as part of its own script.

[Read more]

DoS: Serving Different MIME Types to PresentationHost Crashes XBAP Loading

2011-11-30 :: browser-workshop :: dos

When loading an XBAP file, IE requests it twice: once to verify the MIME type and once as an argument to PresentationHost.exe. If the server returns a different content type on the second request,...

[Read more]

DoS: Setting designMode on a Non-HTML Window Crashes the Browser

2011-11-25 :: browser-workshop :: dos

Opening a new window that loaded non-HTML content (feeds, Flash, XAML, etc.) and immediately setting designMode on its document caused a crash — reliably on IE9 and intermittently on IE10.

[Read more]

Protected Mode Bypass via vsjitdebugger.exe Accepting Binary Arguments

2011-11-25 :: browser-workshop :: sandbox-bypass

This finding built on an existing technique for escaping Low Rights IE (LoRIE) by abusing vsjitdebugger.exe — the Visual Studio just-in-time debugger — which accepts a binary path as a command-line...

[Read more]

IE10 Sandbox HTTP Headers Bypass via Cached Document Object

2011-11-17 :: browser-workshop :: misc

The IE10 sandbox could be applied not just through the sandbox HTML attribute but also via the X-Content-Security-Policy HTTP header. This bypass worked by capturing the new window's document object...

[Read more]

IE8 EoP: Framed Cross-Domain Flash GetURL Triggers Exploitable Crash on Reload

2011-11-16 :: browser-workshop :: eop-rce

Loading a Flash file from a different domain inside an iframe — where the Flash called GetURL with a javascript: target — and then reloading the main page twice caused an exploitable crash in IE8....

[Read more]

iframe security=restricted Bypass via New Window opener.setTimeout

2011-11-10 :: browser-workshop :: misc

The security="restricted" attribute on an iframe is meant to prevent script execution inside it. But if a link inside the restricted frame opens a new window, and that new window calls...

[Read more]

IE10 DoS: Setting designMode in an HTC Behavior Crashes Browser

2011-11-08 :: browser-workshop :: dos

Setting document.designMode = "On" from inside an HTC behavior file caused IE10 to crash.

[Read more]

Address Bar Spoof via Redirect, iFrame Hijack, and document.write

2011-11-03 :: browser-workshop :: address-bar-spoof

This technique allowed spoofing the address bar of any website that had at least one iframe. By opening the target site in a new window, hijacking one of its iframes using Flash's GetURL to point it...

[Read more]

IE10 DoS: Calling document.open/close on Keypress in a Textarea Crashes Browser

2011-10-03 :: browser-workshop :: dos

Opening and closing the document from a textarea's onkeypress event caused IE10 to crash on the first keystroke.

[Read more]

IE10 Sandbox Bypass via Non-HTML Navigation and history.back()

2011-09-30 :: browser-workshop :: sandbox-bypass

This was an interesting multi-step sandbox escape. A sandboxed iframe opened a new window, navigated it through a chain that included loading non-renderable content (RSS feed, SWF, MHT, ZIP, etc.),...

[Read more]

IE10 Sandbox Bypass via New Window opener.parent location with JavaScript

2011-09-27 :: browser-workshop :: sandbox-bypass

With both allow-scripts and ms-allow-popups set, a sandboxed iframe could open a new window and then use that window's opener.parent.location to execute JavaScript in the parent's context —...

[Read more]
Page 4 of 11
← Newer 1234567891011 Older →
© 2026 Broken Browser