shallawa
WebCore security specialist
Summary
shallawa works primarily in WebCore's graphics and imaging stack: ImageBuffer backends, CoreGraphics path and filter rendering, and the decoder work behind the WebCodecs Image API (enabled by default this month) and HTML-in-Canvas. The security fixes sit inside exactly that actively-churning code and fall into recurring shapes — thread-safety failures as decode moved onto worker threads (PathCG scratch context, `PathCG::strokeContains`, `ImageDecoderFactoryAVF`), uninitialized `PixelBuffer` contents escaping filter and readback paths (`FEGaussianBlur` on alpha inputs, `FilterImage`), and GPU-process code allocating or pixel-accessing ImageBuffer backends that don't support it (DisplayList, PDF) — alongside a cross-origin taint miss when a canvas is captured as a VideoFrame. Systematic-variant candidate: shared or static CoreGraphics state newly reachable from the async decode path, and any RemoteRenderingBackend IPC entry point that assumes a concrete backend type rather than validating the RenderingMode it was handed.
Components
Security Fix History
- 2026-09-10 [GPUProcess] Move the drawing Font functionalities to a new class named FontBase 2026-W36
- 2026-08-27 RemoteRenderingBackend can still allocateImageBuffer() with RenderingMode::DisplayList ·
- 2026-08-25 Make ImageDecoderFactoryAVF thread safe ·
- 2026-08-13 When captured as a video frame, canvas has to be tainted if cross-origin image are drawn into it 2026-W32
- 2026-08-13 PathCG should use thread-safe scratchContext 2026-W32
- 2026-07-01 putPixelBuffer() and getPixelBuffer() should never be called for PDF and DisplayList ImageBufferBackends ·
- 2026-07-01 REGRESSION(305413.516@safari-7624-branch): The height of the FEMorphology filter might be off by 1 ·
- 2026-06-30 GetPixelBuffer should zeroFill the destination if any error happens ·
- 2026-06-30 Uninitialized result of FEGaussianBlur if the input isAlphaImage ·
- 2026-06-30 Use-after-free in SVGGeometryElement::getPointAtLength — raw renderer pointer held across nested updateLayout ·
Hardening Commits
Recent Commits
- 2026-09-17 REGRESSION(321128@main): [visionOS] Text disappears or flashes on visionOS
- 2026-09-15 [GPUProcess] Use ThreadSafe Font objects in GPUProcess
- 2026-09-10 [GPUProcess] Move the drawing Font functionalities to a new class named FontBase 2026-W36
- 2026-09-10 Remote snapshotting does not render SVG images
- 2026-08-27 RemoteRenderingBackend can still allocateImageBuffer() with RenderingMode::DisplayList ·
- 2026-08-25 Make ImageDecoderFactoryAVF thread safe ·
- 2026-08-20 WebCodecsImageDecoder should rotate the decoded image based on its ImageOrientation
- 2026-08-20 WebCodecsImageDecoder generates VideoFrames with zero durations
- 2026-08-14 Enable the WebCodecs Image API by default
- 2026-08-14 WebCodecsImageDecoder should return a Promise rejected if the mime type is not supported
- 2026-08-13 WebCodecsImageDecoder should not inherit from EventTarget
- 2026-08-13 When captured as a video frame, canvas has to be tainted if cross-origin image are drawn into it 2026-W32
- 2026-08-13 PathCG should use thread-safe scratchContext 2026-W32
- 2026-08-12 Implement WebCodecsImageDecoder
- 2026-08-05 Implement the IDL changes for WebCodecsImageDecoder