This Week in WebKit — May 02 - May 08, 2026
Featured
The resolver already carried a lifetime anchor for exactly this hazard; CSS Mixins arrived without one. Past the crash, everything depends on who gets the freed slab first.
CSP Level 3 says an empty source list and 'none' forbid the same thing. On a URL-less <object>, one of them was still answering to a superseded draft.
A preference decided how much ANGLE a renderer can reach inside the GPU process — and only the untrusted side ever read it. Asking for the draft extension was enough.
The out-of-bounds trap is the whole of memory safety for this instruction, and a wrapped address never reached it. The upper 32 bits go missing between the fast path and the slow path.
Classic scripts and inline modules pass both gates; external modules only ever reached the second. The second one was written to defer to the first.
Security fixes
- DocumentThreadableLoader dereferences a dead document WeakPtr
- OMG emits an integer zero into a float Wasm field
Notable development
-
[JSC] Implement `String#split` in C++
optimization JSC
-
[Wasm] Use a lazy restore frame when returning from tail calls
optimization JSC
-
[JSC] Add Array#concat DFG nodes
optimization JSC
-
[JSC] Fix wasm type parsing regression by making RTT formal canonicalized types
refactor JSC
-
[JSC] IPInt fast path for `memory.atomic.wait32`/`wait64` wraps the Memory64 effective address
bug JSC
-
[JSC][WASM][Debugger] Fix STW deadlocks when VM blocks in memory.atomic.wait or WebCore operations
bug JSC
-
[cocoa] AVStreamDataParser accepts media segments not preceded by an init segment
bug WebCore Media Source Extensions
-
[JSC] GreedyRegAlloc: Add loop-aware live range splitting (disabled by default)
optimization JSC