16 picks from 518 commits
2026-09-19 – 25
This Week in WebKit — September 19 – September 25, 2026
312
전체 commit 수
6건
Security fix
High 3건, Medium 1건, Low 2건
96
Contributor 수
Top components
JSC DFG/FTL & B3 · WebCore HTML canvas · WebKit NetworkProcess IPC · WebCore frame tree · WebKit WebRTC codecs · JSC WebAssembly
Featured
Security · High
Two iframes, two Set prototypes, and the compiled code watching the wrong one.
Overwriting Set.prototype[Symbol.iterator] jettisoned nothing, and the spread ran attacker JavaScript where the compiler had proven nothing could run. Two invalidation nets were dodged, not one.
Security · High
Instruction selection sank an atomic past memory.grow, onto memory already freed.
In bounds-checking mode the grow hands the old region back, and the sunk compare-and-swap still executes against it. What the fusion check asked about that CAS was never what ran in between.
Security · High
The canvas save stack hit its cap, and the cap stopped being a resource limit.
save() declines silently at the cap, and beginLayer() took it for success. The freed drawing context is then dereferenced on every draw call — a repeatable use, not a one-shot.
Security · Medium
A compromised renderer could borrow another WKWebView's cookie policy by name.
The page identifier arrived in the message and was never checked against the sender. A real entitlement check ran on every one of these paths — just not on that axis.
Security fixes
- Frame-tree ancestor-walk consolidation (`FrameAncestorIterator`)
- GFC `layoutGridItems` redundant measurement layouts
Notable development
-
WebAssembly wide-arithmetic proposal enabled by default
feature JSC WebAssembly
-
SharedArrayBuffer enabled for cross-origin-isolated GLib ports
feature JSC WebAssembly
-
H264/HEVC QP bitstream parsing relocated to WebProcess
hardening WebKit WebRTC codecs
-
Allocation-free FastArray iteration with `op_iterator_close_check`
optimization JSC bytecode
-
Local Network Access permission storage + `permissions.query()`
feature WebKit NetworkProcess
-
Cross-process ImageBitmap/ImageBuffer transfer under Site Isolation
feature WebKit GPU Process
-
Native `GPUVideoDecoderVTBH265` with HEVCUtilities NAL/VPS parsing
feature WebKit WebRTC codecs
-
Thread-local `Connection::MessageDispatchScope` for `MESSAGE_CHECK` from work queues
hardening WebKit IPC
-
Open-panel image transcoding routed to the requesting iframe's process
bug WebKit UIProcess
-
`JSONTransitionCache` for `JSON.parse` Structure transitions
optimization JSC runtime
Other security-relevant changes
- [WebCore canvas rendering]
2ce92dc— HTMLCanvasElement::requestPaint()와 CanvasPaintEvent dispatch가 구현되었습니다. Dispatch는 Document 수준의 event queue와 RenderingUpdateStep을 거쳐 처리됩니다. HTML-in-Canvas라는 새로운 기능 표면이 추가된 셈입니다. 다만 공개된 diff 범위 안에서는 보안상 영향이 드러나지 않습니다. - [WebKit NetworkProcess] (partition bypass)
397d4fb— HTTP redirect를 거치는 동안에도 _allowOnlyPartitionedCookies flag가 유지되도록 수정되었습니다. CHIPS cookie partitioning이 활성화된 환경이 대상입니다. 이때 media request에서 partition되지 않은 third-party cookie가 유출되는 상황을 막기 위한 변경입니다. - [WebKit Geolocation] (permission prompt spoofing)
3b4fe5b— Geolocation 권한 prompt에 표시되는 origin의 기준이 변경되었습니다. 기존에는 page의 active navigation URL을 사용했지만, 이제는 요청을 보낸 frame에서 origin을 가져옵니다. 그래서 요청 도중 다른 사이트로 navigation이 발생하더라도 올바른 origin이 표시됩니다. - [WebKit HSTS] (hardening)
33c016a— HSTS partitioning regression이 수정되었습니다. CHIPS 도입 이후 third party가 All이 아닌 AllExceptPartitioned로 판정되면서, 기존 gate가 더 이상 동작하지 않았습니다. 이에 HSTS downgrade 로직이 None을 제외한 모든 blocking decision을 기준으로 gate하도록 변경되었습니다. 결과적으로 third party가 공유 HSTS cache를 tracking vector로 조회하는 경로가 차단되었습니다. - [WTF / WebKitLegacy] (hardening)
669358d— WebKitLegacy에서 발생하던 unretained argument warning이 정리되었습니다. 먼저 CFSet, CFMutableSet, CGPDFDocument에 대한 CF type trait 선언이 추가되었고, DDResult template specialization도 재배치되었습니다. 모두 SaferCPP의 memory safety 분석을 개선하기 위한 변경입니다. - [git-webkit tooling]
8bb663b— git-webkit 개발 tooling에 대한 수정입니다. 기존에는 pr --no-bug 사용 시 사용자가 지정한 title이 버려졌는데, 이제는 commit message에 그대로 유지됩니다. Runtime이나 보안에 미치는 영향은 없습니다.