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
Table of contents
IntroductionThe guilty commitInline vs Out-of-lineThe vulnerable code pathGetting a crashRoot CauseExploitDisclosure TimelineSort: