← All issues

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

397
총 commits
23건
보안 수정
심층 분석: High 5건, Medium 1건; 나머지는 부록에서 분류
109
기여자
Top components WebCore · Platform · WebKit · JSC · Other

Featured

Security fixes

Notable development

Other security-relevant changes

  • [WebKit pasteboard proxy] (sandbox bypass) 0d3713d — pasteboard IPC의 authorization bypass가 수정되었습니다. getPasteboardPathnamesForType()이 drop 시점에만 접근을 허용하는 canAccessPasteboardData() 대신, drag-over 중에도 접근을 허용하는 canAccessPasteboardTypes()를 확인하고 있었습니다. 이로 인해 file path가 의도보다 이른 시점에 노출되었습니다.
  • [WebCore RTCEncodedStreamProducer] (type confusion) 8384c84RTCEncodedStreamProducer::writeFrame에 type validation이 추가되었습니다. audio frame이 video sender에 enqueue되거나 그 반대가 되는 type confusion을 방지하며, 이로 인해 OOB read가 발생할 수 있던 문제가 수정되었습니다.
  • [WebKit NetworkProcess] (sandbox bypass) 5ec3ee1 — local file load에 대한 sandbox extension 확인 위치를 WebContent에서 Networking process로 이동하여 access 제한 우회를 방지했습니다.
  • [JSC AccessCase] (UAF) 055680a — AccessCase에 CustomAccessorGetter/CustomAccessorSetter의 customSlotBase 추적이 추가되었습니다. JIT-cached reference가 slot base의 GC 이후까지 살아있을 경우 발생할 수 있는 UAF를 방지합니다.
  • [WebCore HTMLDialogElement] (UAF) 7075344HTMLDialogElement::handleCommandInternal에서 UAF가 수정되었습니다. beforetoggle event handler가 button의 value attribute를 close()에 전달하는 도중 제거할 수 있어 dangling string reference가 발생하는 문제였습니다.
  • [WebGPU CommandEncoder] (UAF) 5b76a52 — render pass 설정 전에 texture view가 파괴되었는지 여부를 검증하도록 변경되었습니다. 무효화된 WebGPU 리소스를 참조할 때 발생하는 UAF를 방지합니다.
  • [JSC Wasm] (UAF) 9a16de4 — Wasm JIT에서 UAF가 수정되었습니다. callsite 수집과 repatch 사이에 BBQCallee가 소멸할 수 있었는데, Heap::stopThePeriphery()가 JS 스레드는 멈추지만 Wasm 스레드는 멈추지 않는 것이 원인이었습니다. BBQCallee를 strong ref로 유지하여 소유한 OMGOSREntryCallee를 보존합니다.
  • [WebCore FEColorMatrix] (validator bypass) b5b06c0 — GPU process 메시지를 디코딩하기 전, FEColorMatrix values 벡터의 길이를 type에 대해 IPC 측에서 검증하는 로직이 추가되었습니다. web content가 불일치한 type/values 조합을 전송할 경우 발생할 수 있던 crash를 방지합니다.
  • [WebCore Attr] (UAF) 8d71b72 — GC 스레드가 main thread의 소멸과 동시에 m_element를 역참조하는 UAF가 수정되었습니다. cross-thread 동기화를 위해 lock과 CheckedPtr이 추가되었습니다.
  • [WebKit / NetworkProcess] (sandbox bypass) f10b871InstallMockContentFilter IPC 처리에 AllowTestOnlyMockContentFilterIPC 조건 확인이 추가되었습니다. 이전에는 손상된 WebContent 프로세스가 process-global MockContentFilterSettings 싱글톤을 덮어써 모든 NetworkProcess 연결에서 탐색을 리디렉션하거나 차단하는 것이 가능했습니다.
  • [WebCore filters/morphology] (race condition) f076e1a — 병렬 morphology filter에서 여러 스레드가 thread-safe하지 않은 PixelBuffer를 공유하던 race condition이 수정되었습니다. 이제 각 job은 별도의 버퍼를 사용합니다.
  • [ANGLE Metal backend] (type confusion) c9fd4a1 — ANGLE Metal backend에서 stale texture format 문제가 수정되었습니다. 범위를 벗어난 mipmap 업로드 시 mFormat이 잘못 업데이트되어 이후 GenerateMipmap 및 render 작업이 native storage와 맞지 않는 형식을 사용하게 되었습니다.
  • [WebCore PlatformScreen] (lifetime fix) ee05249 — PlatformScreen에서 동시 HashMap 접근으로 인한 MTE crash가 수정되었습니다. 불필요한 reference 변수를 제거하여 memory leak도 함께 해결되었습니다.
  • [WebCore ControlFactory] (UAF) ab0c1f8 — ControlFactory 싱글톤은 여러 스레드에서 동시에 ref/deref되었지만 thread-safe하지 않은 RefCounted를 사용하고 있어 잠재적 UAF가 발생할 수 있었습니다. ThreadSafeRefCounted로 전환하여 수정되었습니다.
  • [WebKit CoreIPC] (TOCTOU, OOB read) ca1cd57logOnBehalfOfWebContent에서 TOCTOU 문제가 수정되었습니다. 손상된 WebContent 프로세스가 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로 픽셀을 읽을 때 client buffer 경로를 잘못 사용하던 문제가 수정되었습니다. 이로 인해 wipeAlphaChannelFromPixels에서 crash가 유발되었습니다.