← 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
High 3건, Medium 3건은 심층 분석하였으며, 나머지 10건은 부록에서 다룹니다
113
Contributors
Top components WebCore · Other · WebKit · Platform · JSC

Featured

Security fixes

Notable development

Other security-relevant changes

  • [JSC heap] (lifetime fix) d55bf0c — WebAssemblyGCStructure는 Structure나 BrandedStructure와 달리 GC end phase에서 finalization 과정을 거치지 않았습니다. 이로 인해 WebAssembly GC 객체에서 도달 가능한 stale structure state가 남아 있을 가능성이 존재했습니다. 패치는 누락되었던 finalizeUnconditionally 호출을 추가합니다.
  • [WebCore AVFoundation] (UAF) 4193d2c — destructor 시작 시점에 weak pointer를 revoke하도록 변경했습니다. 이를 통해 MediaSource teardown 과정에서 KVO callback이 이미 파괴된 멤버(m_logger)에 접근하지 못하도록 차단합니다. Destruction 중에 유발되던 use-after-free를 수정한 패치입니다.
  • [WebCore webaudio] (UAF) ed04ff4 — web audio teardown 과정에서 AudioContext destructor가 자신의 destruction 도중 Document에 접근하면서 발생하던 use-after-free를 수정했습니다. removeAudioProducer 호출을 teardown 초기 단계로 옮기고, isStopped() 검사를 추가했습니다.
  • [libvpx VP9 encoder] (overflow) 53c3a3a — VP9 encoder의 vp9_scale_references가 reference frame buffer 할당에 실패했을 때 조용히 반환하는 대신 VPX_CODEC_MEM_ERROR로 명시적으로 실패하도록 강화했습니다. 또한 motion search 경로에 scaled reference frame이 source dimension과 일치하는지 검증하는 debug assertion을 추가했습니다.
  • [WebCore DOM] (trusted event bypass) fc1ef83 — label에 대한 untrusted click이 연결된 form control로 trusted 상태인 것처럼 전달되던 문제를 수정했습니다. 이를 통해 switch input의 haptic feedback에 요구되는 trusted-event 조건이 우회되는 상황을 방지합니다.
  • [WebCore Service Workers] (race condition) 3bce213 — 내부 tracking map들이 race condition으로 인해 서로 어긋나면서 Service Worker client lookup 과정에서 발생하던 crash를 수정했습니다. end-iterator에 대한 guard를 추가해 잘못된 메모리 접근을 방지합니다.
  • [JSC FTL] (type confusion) 267af1c — JSC FTL의 MultiGetByOffset이 double로 변환 불가능한 constant 값(function)을 escape 처리하지 못해, ValueRepReduction에서 이 값이 숫자로 잘못 다뤄지던 type confusion에 대한 regression test입니다. Value representation 처리의 edge case에 해당합니다.
  • [WebCore CSP] (path traversal) 9a19d07 — CSP3 스펙에 맞춰 pathMatches()의 동작을 full-path percent-decoding 방식에서 segment 단위 decoding 방식으로 변경했습니다. %2F..%2F를 이용한 CSP path 제약 우회를 방지합니다.
  • [WebCore loader] (protection bypass) d6c7e00 — about:blank popup이 registrable domain을 빈 값으로 가지면서, thirdPartyCookieBlockingDecisionForRequest()가 None을 반환해 third-party cookie blocking을 건너뛰던 문제가 있었습니다. 패치는 popup이 opener의 firstPartyForCookies를 상속받도록 변경합니다.
  • [WebCore HTMLPlugInElement] (validator bypass) 7d28e39<embed><object>를 통한 plugin 로드에서 content extension rule이 우회되던 문제가 있었습니다. 패치는 HTMLPlugInElement::canLoadURL에 policy enforcement 검사를 추가해 blacklist에 등록된 리소스의 로드를 차단합니다.