Escaping the Edge sandbox: A bug that speaks for itself
microsoftedge.github.io
microsoftedge.github.io
Bartoli has been a security researcher for a long time.
But yeah, the blog is hosted on https://microsoftedge.github.io/ which seems to be an official Microsoft account.
In this blog post, we will share the story about how we discovered a critical stack corruption bug that has existed in Windows for more than 20 years.
The drama: The bug was found in a core Windows OS library which is used by countless software products but is most notably reachable from within the sandbox of all Chromium-based browsers, exposing a sandbox escape which is reachable from the web via JavaScript.
Yeah, yeah, but surely all that old cruft is wrapped up in safety bubble wrap today.The sting:
The first thing we noticed was that the crash did not trigger the corruption of a stack canary.
Surely an oversight: From the build scripts it was clear that the library was compiled with /GS (Stack Canaries). In disbelief, we opened the binary in IDA pro and saw the canary check in the relevant function.
Damn, the bubble wrap got popped.Overall, this is a fun read and worthy of Phrack 71 (?) (awaiting submissions).
Personally it seems to me those features should go through a more restricted channel from JS, like an API with a strict data structure and Firefox was right to sanitise it.
Having platform behaviour be a defacto part of the spec is probably not a downside for them :)
It's definitely funny that this article portrays this as Firefox removing functionality.
That qualification is as telling as the bug.