WebKit Silent-Fix Report — 2026-W25

Window: 2026-06-15 - 2026-06-21 (ISO 2026-W25). Generated by the webkitMon commit hunter (structural scorer v2 → LLM triage → root-cause analysis).

Coverage

  • 264 commits triaged (floor-0 candidate set: every commit scoring ≥0).
  • 60 judged security-relevant; 40 exploitable-grade (isSecurity, confidence ≥0.6, severity high/medium) with full writeups.
  • Non-security in candidate set: 204 (candidate-set false-positive rate 77%).

Columns. Sev — severity (high / medium / low / dev). Conf — the triage model’s confidence (0.00–1.00) that the commit is a genuine security fix. Class — bug class (UAF, OOB, type confusion, race, cross-origin, bypass, …). Every row links to a full page with commit metadata and a side-by-side before/after view; the exploitable-grade commits also carry a full root-cause analysis, PoC, and detection guidance.

Exploitable-grade picks

# Sev Conf Class Component Commit One-liner
1 high 0.85 TypeConfusion WebCore WebRTC RTCEncodedStreamProducer 8384c8455e Type confusion in RTCEncodedStreamProducer lets an audio frame be written as a video frame (and vice versa) causing OOB read
2 high 0.85 IntOverflow ANGLE / WebGL 56c55ddc38 ANGLE IndexRange integer overflow bypasses vertex index validation allowing out-of-bounds vertex access
3 high 0.85 OOB JSC YARR JIT 116394de19 Yarr JIT word-boundary assertion with unicode+surrogate corrupts firstCharacterAdditionalReadSize/index, producing a corrupted JSString
4 high 0.85 Bypass WebKit UIProcess Pasteboard 0d3713dbb6 getPasteboardPathnamesForType checked canAccessPasteboardTypes instead of canAccessPasteboardData, letting a web process read local file paths without data access
5 high 0.82 OOB WebKit GPU Process filters (FEColorMatrix) b5b06c0fc2 Validate FEColorMatrix values vector length before decoding in GPU Process to stop web-process-supplied mismatch causing OOB
6 high 0.82 CrossOrigin WebKit Site Isolation / WebPasteboardProxy 69aa56247c WebPasteboardProxy WriteWebArchiveToPasteBoard now rejects remote frame IDs not descended from the requesting root frame
7 high 0.80 CrossOrigin WebKit WebAuthn IPC 315ac3073a Add IPC message-check of security origin during WebAuthn GetAssertion so a compromised web process can’t spoof origin
8 high 0.80 SandboxEscape WebKit UIProcess pasteboard/attachments c6cd4e07e9 Validate/allowlist incoming file paths from the web process for attachment elements via addAllowedAttachmentFilePath
9 high 0.72 TypeConfusion JSC DFG ae69ef2312 DFG ArrayIterator entries path emitted GetByVal on Double array then NewArray with no ExitOK, letting Fixup misorder ValueRep conversion
10 high 0.72 OOB WebCore WebGL d0000cab59 WebGL readPixels to a PBO with an offset crashed; adds validation of PBO offsets (INVALID_OPERATION/INVALID_VALUE) to prevent OOB
11 medium 0.82 UAF JSC Wasm StreamingCompiler acee67e9af Fix UAF of StreamingCompiler::m_ticket by holding a smart handle and bailing via takeTicketIfActive() instead of raw exchange
12 medium 0.80 UAF WebCore DOM bindings (JSAttr GC) 8d71b72447 JSAttr GC visit of Attr’s owner element now takes a lock and uses CheckedPtr to avoid UAF/race with main-thread detach
13 medium 0.80 UAF WebCore HTML HTMLDialogElement 70753442a3 Copy invoker value into a local String before dialog close so a beforetoggle handler removing the value can’t cause UAF
14 medium 0.78 UAF JSC Wasm CalleeGroup 9a16de46f2 Keep BBQCallee (and edge-case OMGOSREntryCallee) alive across callsite collection and repatch to avoid UAF from wasm-thread frees
15 medium 0.75 Race WebCore bindings JSSubscriber GC db743cc339 Consolidate JSSubscriber GC visiting under m_teardownsLock and avoid refing on the GC thread to fix a race
16 medium 0.75 UAF JSC inline cache AccessCase GC 055680a255 Track customSlotBase for CustomAccessorGetter/Setter in forEachDependentCell so GC keeps it alive
17 medium 0.75 OOB WebCore editing ICUSearcher 03015890a6 isWordStartMatch clamps the word-boundary search index to the trimmed context buffer length, preventing an out-of-bounds read
18 medium 0.72 CrossOrigin WebKit Site Isolation 874b112868 Storage access wasn’t revoked when an iframe navigated itself cross-origin; now revoked when requester frame changes origin
19 medium 0.70 UAF WebKit GPU Process RemoteAudioVideoRendererProxyManager a7ea563d0f Use ThreadSafeWeakPtr (and expose controlBlock) for renderer callbacks to fix a crash in RemoteAudioVideoRendererProxyManager::ref
20 medium 0.70 OOB WebCore CSSOM 44ba2b5c11 Fix script-triggerable crash inserting @namespace after @import via CSSOM caused by global vs namespace-vector index mismatch
21 medium 0.70 UAF WebKit iOS fullscreen controller 4d4fbca02b Fix fullscreen crash by retaining self and windows (retainPtr) in animation/completion blocks instead of raw or weak captures
22 medium 0.70 Other WebKit WebExtensions image loading b9c7a1bf56 Restrict WebExtension icon decoding to web-supported image types so untrusted data can’t reach arbitrary ImageIO codecs
23 medium 0.70 SandboxEscape WebKit GPU RemoteMediaPlayerManagerProxy 446481a1be GPU process CreateMediaPlayer failed to reject contained media engines under MediaContainmentEnabled; adds MESSAGE_CHECK to terminate rogue WebContent
24 medium 0.65 IntOverflow JSC DFG 5e2667f6b1 Propagate observed baseline Int32 overflow into DFG via NodeMayOverflowInt32InBaseline
25 medium 0.65 Bypass WebCore CSP / CachedResourceLoader 150a3a12e5 Apply connect-src (not script-src) to JSON module imports so CSP enforces the correct directive
26 medium 0.65 TypeConfusion JSC LiteralParser aa5589433c LiteralParser takes the slow path when a proto setter mutates the original structure mid-parse, avoiding use of a stale transition offset
27 medium 0.62 IntOverflow WebKit UIProcess BackForwardList 37310f2c57 Swift BackForwardList rejects INT32_MIN and uses addingReportingOverflow for currentIndex+delta from web-process-supplied delta
28 medium 0.62 Race WebCore SVG filters f076e1adb5 FEMorphologySoftwareApplier made thread-safe (removed from uncounted-member expectations, parallel applier)
29 medium 0.60 UAF WebCore bindings DOMWrapperWorld d2af128b14 Adds sampled guard-page (mmap+mprotect) protection around DOMWrapperWorld m_wrappers table to catch UAF/corruption on rehash
30 medium 0.60 Bypass WebCore CSP 01c89d15c3 Fix CSP ‘self’ to match in opaque-origin http(s) (sandboxed/redirected) documents
31 medium 0.60 CrossOrigin WebCore SVG/CSS filters tainting 3e90b93505 Taint filter output when flood-color/lighting-color resolves to currentColor to avoid leaking computed color
32 medium 0.60 TypeConfusion WebCore HTML HTMLSelectElement 810f13a41f Fix crash when adding multiple attribute to appearance:base <select> while the renderer is still the generic (non-RenderListBox) one
33 medium 0.60 IntOverflow JSC LLInt/Baseline/DFG f7026fa96b Profile op_unsigned overflow in LLInt/Baseline and feed NodeMayOverflowInt32InBaseline in DFG for UInt32ToNumber
34 medium 0.60 OOB JSC array profiling / JIT 72e0ec4b21 Set ArrayProfile MayStoreHole appropriately on hole-creating stores so the JIT speculates array stores soundly
35 medium 0.60 OOB WebCore WebAuthn CBOR 97990a2481 AuthenticationExtensionsClientOutputs::fromCBOR compared a nested-map iterator against the outer map’s end(), undefined behavior
36 medium 0.60 Bypass WebCore SecurityOrigin/cache 20790ef5e0 Ref<SecurityOrigin> silently used pointer hashing, so Clear-Site-Data: cache failed to evict BFCache/MemoryCache entries; now a hard compile error
37 medium 0.60 OOB WebKit Geolocation b425ed981e WebGeolocationManager::resetPermissions had an inverted end() check, dereferencing the end iterator when the domain was absent
38 medium 0.60 Bypass WebKit Network IPC f10b871ab9 Gate InstallMockContentFilter IPC behind AllowTestOnlyMockContentFilterIPC preference
39 medium 0.60 TypeConfusion JSC DFG 7937fd75ae MapIteratorNext modeled statelessly so ObjectAllocationSinking/OSR-exit cannot leave Map/Set iterator partially or double-advanced
40 medium 0.60 UAF WebCore SerializedScriptValue / BroadcastChannel 84cde5ed5a SerializedScriptValue::deserialize must not be called more than once, affecting BroadcastChannel postMessage of shared buffers/WasmMemory

Other security-relevant

Sev Conf Class Component Commit One-liner
medium 0.58 Bypass WebKit UIProcess BackForwardList 791d472399
medium 0.55 Race WebCore Style 54e82182ce
medium 0.55 TypeConfusion WebCore LBSE SVG rendering f5722de1f7
medium 0.55 UAF WebGPU render pass 5b76a52475
medium 0.55 Race WebCore PlatformScreen ee05249166
medium 0.50 IntOverflow WebKit GPU media cb220370b4
medium 0.50 OOB ANGLE Metal e8902beae5
low 0.60 LogicError WebKit Shared Cocoa IPC df1c872b25
low 0.55 IntOverflow WebKit Shared TextExtraction fa10d866af
low 0.55 IntOverflow WebKit WebExtensions storage ea232f3860
low 0.50 LogicError WebCore Storage WorkerStorageConnection b0273bc189
low 0.50 UAF WebCore model-element de88d16504
low 0.50 LogicError WebCore Accessibility ce27a48eff
low 0.45 UAF JSC Wasm BBQ ControlData 96d0619b3a
low 0.45 UAF WebCore graphics FontCache 5c3bc51f9e
low 0.45 LogicError JSC JSObject 357d3881fd
low 0.45 LogicError WebCore WebCodecs VideoFrame 25570b9123
low 0.45 LogicError WebCore loader 65e6c589b7
low 0.40 Other WebCore CSS calc/anchor 8be326aece
dev 0.45 Other JSC DFG/FTL OSR exit 1d2be470ed