← All reports
16 picks from 423 commits
2026-05-16 – 22

This Week in WebKit — May 16 - May 22, 2026

423
Total commits
16
Security fixes
3 High, 3 Medium analyzed in depth; 10 additional triaged in the appendix
113
Contributors
Top components WebCore · Other · WebKit · Platform · JSC

Featured

Security fixes

Notable development

Other security-relevant changes

  • [JSC heap] (lifetime fix) d55bf0c — WebAssemblyGCStructure skipped finalization at GC end phase, unlike Structure and BrandedStructure, potentially leaving stale structure state reachable from WebAssembly GC objects. Fix adds the missing finalizeUnconditionally call.
  • [WebCore AVFoundation] (UAF) 4193d2c — Revokes weak pointers at destructor start to block KVO callbacks from accessing destroyed members (m_logger) during MediaSource teardown, fixing a use-after-free triggered during destruction.
  • [WebCore webaudio] (UAF) ed04ff4 — Fixed use-after-free in web audio teardown where AudioContext destructor would access Document during its destruction; relocated removeAudioProducer call to earlier teardown phase and added isStopped() guard.
  • [libvpx VP9 encoder] (overflow) 53c3a3a — Hardens VP9 encoder's vp9_scale_references to fail explicitly with VPX_CODEC_MEM_ERROR when reference frame buffer allocation fails, instead of silently returning. Adds debug assertions in motion search paths to verify scaled reference frames match source dimensions.
  • [WebCore DOM] (trusted event bypass) fc1ef83 — Fixed untrusted clicks on labels forwarded as trusted to associated form controls, preventing bypass of the trusted-event requirement for switch input haptic feedback.
  • [WebCore Service Workers] (race condition) 3bce213 — Fixed crash in Service Worker client lookup when internal tracking maps become out-of-sync via a race condition; added end-iterator guards to prevent invalid memory access.
  • [JSC FTL] (type confusion) 267af1c — Regression test for type confusion where JSC FTL's MultiGetByOffset failed to escape constant values unconvertible to double (functions), allowing them to be mishandled as numbers in ValueRepReduction; edge case in value representation.
  • [WebCore CSP] (path traversal) 9a19d07 — Changed pathMatches() from full-path percent-decoding to per-segment decoding per CSP3 spec to prevent %2F..%2F bypasses of CSP path restrictions.
  • [WebCore loader] (protection bypass) d6c7e00 — About:blank popups had empty registrable domains, causing thirdPartyCookieBlockingDecisionForRequest() to return None and skip third-party cookie blocking. Patch makes popups inherit opener's firstPartyForCookies.
  • [WebCore HTMLPlugInElement] (validator bypass) 7d28e39 — Content extension rules were bypassed for and plugin loads; patch adds policy enforcement check in HTMLPlugInElement::canLoadURL to prevent blacklisted resources from loading.