EDB-ID: 42092 | Author: Google Security Research | Published: 2017-05-30 | CVE: CVE-2017-8541 | Type: Dos | Platform: Windows | Aliases: N/A | Advisory/Source: Link | Tags: Use After Free | Vulnerable App: N/A |
In JsRuntimeState::setCaller, it saves the current caller in the JsRuntimeState object(rcx+158h in 64-bit). But the garbage collector doesn't mark this saved value. So it results in a UAF.
Unlike in our test environment(Linux), it doesn't make reliable crashes on Windows. So I used another bug(#1258) to confirm the bug. If the UAF bug doesn't exist, the "crash" function will not be called(See poc.js).
The password of the zip file is "calleruaf"
Proof of Concept:
https://github.com/offensive-security/exploit-database-bin-sploits/raw/master/sploits/42092.zip