A single-character typo in Firefox's SpiderMonkey WebAssembly GC implementation led to a critical remote code execution vulnerability. The bug involved using bitwise AND (&) instead of OR (|) when setting a forwarding pointer, causing out-of-line arrays to be misidentified as inline arrays. This created a use-after-free

16m read timeFrom kqx.io
Post cover image
Table of contents
IntroductionThe guilty commitInline vs Out-of-lineThe vulnerable code pathGetting a crashRoot CauseExploitDisclosure Timeline

Sort: