← All reports
7 picks from 397 commits
2026-06-13 – 19

This Week in WebKit — June 13 - June 19, 2026

397
Total commits
23건
Security fixes
심층 분석: High 3건, Medium 2건, Low 1건
109명
Contributors
Top components WebCore · WebKit · JSC · Other · Platform

Featured

Security fixes

Other security-relevant changes

  • [WebKit pasteboard proxy] (sandbox bypass) 0d3713d — pasteboard IPC에서 권한 검사가 우회되는 문제가 수정되었습니다. getPasteboardPathnamesForType()canAccessPasteboardData() 대신 canAccessPasteboardTypes()를 검사하고 있었는데, 후자는 drag-over 상태에서도 허용되는 권한이라 drop이 일어나기 전부터 파일 경로가 노출되는 상황이 가능했습니다.
  • [WebCore RTCEncodedStreamProducer] (type confusion) 8384c84RTCEncodedStreamProducer::writeFrame에 type 검증이 추가되었습니다. 이를 통해 audio frame이 video sender에 enqueue되거나 그 반대 상황이 발생하는 것을 방지하며, out-of-bounds read로 이어지던 type confusion이 해결되었습니다.
  • [WebKit NetworkProcess] (sandbox bypass) 5ec3ee1 — local file load에 대한 sandbox extension 검사 위치가 WebContent에서 Networking process로 이동되었습니다. 접근 제한이 우회되는 경로를 차단하기 위한 조치입니다.
  • [JSC AccessCase] (UAF) 055680a — AccessCase의 CustomAccessorGetter/CustomAccessorSetter에 customSlotBase 추적 기능이 추가되었습니다. JIT-cached reference가 slot base의 garbage collection보다 더 오래 살아남으면서 발생하던 use-after-free를 방지합니다.
  • [WebCore HTMLDialogElement] (UAF) 7075344HTMLDialogElement::handleCommandInternal의 use-after-free가 수정되었습니다. beforetoggle 이벤트 핸들러가 button의 value 속성이 close()로 전달되는 도중 이를 제거할 수 있었고, 그 결과 문자열이 dangling 참조 상태가 되는 문제였습니다.
  • [WebGPU CommandEncoder] (UAF) 5b76a52 — render pass 설정에서 texture view를 사용하기 전에 해당 view가 이미 destroy되지 않았는지 검증하도록 변경되었습니다. 무효화된 WebGPU 리소스를 참조하려 할 때 발생하던 use-after-free를 방지합니다.
  • [JSC Wasm] (UAF) 9a16de4 — Wasm JIT의 use-after-free가 수정되었습니다. Heap::stopThePeriphery()가 JS thread는 멈추지만 Wasm thread는 멈추지 않기 때문에, callsite 수집과 repatch 사이에서 BBQCallee가 먼저 소멸할 수 있는 문제였습니다. strong reference를 통해 BBQCallee를 생존시켜 그것이 소유한 OMGOSREntryCallee를 유지하도록 했습니다.
  • [WebCore FEColorMatrix] (validator bypass) b5b06c0 — decoding 이전 IPC 단계에서 FEColorMatrix values 벡터 길이를 type과 대조해 검증하는 절차가 추가되었습니다. GPU process 메시지에서 web content가 type과 values를 불일치시켜 전송할 때 발생하던 crash를 방지합니다.
  • [WebCore Attr] (UAF) 8d71b72 — GC thread가 main thread의 destruction과 동시에 m_element를 역참조하면서 발생하던 use-after-free가 수정되었습니다. cross-thread 동기화를 위해 lock과 CheckedPtr이 추가되었습니다.
  • [WebKit / NetworkProcess] (sandbox bypass) f10b871 — InstallMockContentFilter IPC가 AllowTestOnlyMockContentFilterIPC 뒤로 게이팅되었습니다. 이전에는 침해된 WebContent process가 process 전역의 MockContentFilterSettings singleton을 덮어써, 모든 NetworkProcess 연결의 navigation을 리다이렉트하거나 차단할 수 있는 상태였습니다.
  • [WebCore filters/morphology] (race condition) f076e1a — parallel morphology filter의 race condition이 수정되었습니다. 여러 thread가 thread-safe하지 않은 공유 PixelBuffer에 접근하고 있었는데, 이제는 job마다 별도의 buffer를 사용하도록 변경되었습니다.
  • [ANGLE Metal backend] (type confusion) c9fd4a1 — ANGLE Metal backend에서 stale texture format 문제가 수정되었습니다. out-of-range mipmap upload 시 mFormat이 잘못 갱신되면서, 이후의 GenerateMipmap 및 render 연산이 native storage에 대해 잘못된 format을 사용하는 상황이 발생하고 있었습니다.
  • [WebCore PlatformScreen] (lifetime fix) ee05249 — PlatformScreen에서 HashMap에 대한 동시 접근으로 발생하던 MTE crash가 수정되었습니다. 원인은 memory leak을 유발하던 불필요한 reference 변수였으며, 이를 제거했습니다.
  • [WebCore ControlFactory] (UAF) ab0c1f8 — ControlFactory singleton이 여러 thread에서 동시에 ref/deref되고 있었는데, thread-safe하지 않은 RefCounted를 사용하고 있어 UAF 가능성이 존재했습니다. ThreadSafeRefCounted로 전환해 이를 해결했습니다.
  • [WebKit CoreIPC] (TOCTOU, OOB read) ca1cd57logOnBehalfOfWebContent의 TOCTOU가 수정되었습니다. 침해된 WebContent process가 IPC로 전송한 이후 SharedMemory 기반 문자열을 변조해 null terminator를 제거할 수 있었고, 그 결과 UIProcess에서 OOB read가 발생하는 문제였습니다. 이제는 수신 즉시 span을 CString으로 복사합니다.
  • [WebCore Worklets CSP] (CSP bypass) 933debd — AudioWorklet과 PaintWorklet scope가 빈 CSP로 초기화되면서 eval() 차단 등의 제약이 우회되던 문제가 수정되었습니다. 이제는 생성자 document의 CSP를 정상적으로 상속받습니다. 또한 worklet module fetch에 대한 CSP directive 검사도 worker-src 대신 script-src를 사용하도록 수정되었습니다.
  • [WebCore WebGL] d0000ca — offset이 있는 PBO로 pixel을 읽을 때 client buffer 경로가 잘못 사용되던 문제가 수정되었습니다. 이 문제는 wipeAlphaChannelFromPixels를 통한 crash를 유발하고 있었습니다.