Android security tags, read closely by Lightrion

CVE-2025-48630 AI-generated analysis

platform/frameworks/native, libs/renderengine (SkiaRenderEngine blur rendering)

AI-generated: written from the bulletin and the fixing diffs by claude-fable-5-1, then checked against the code by claude-opus-5-5 (3 corrections). Verify against the commit before relying on it.

SkiaRenderEngine::drawLayersInternal now clips the canvas to the layer bounds before drawing blur regions when no rounded-corner clip is present, so a client-supplied blur region larger than the layer can no longer draw blurred content outside the layer's bounds.

Root cause

In libs/renderengine/skia/SkiaRenderEngine.cpp, drawLayersInternal() set a canvas clip for blur drawing only when roundRectClip was non-empty (canvas->clipRRect(roundRectClip, true)). When the layer had no rounded corners, no layer-bounds clip was applied. Only the existing device clip limited drawing. As a result, the later blur draws for layer.blurRegions, whose geometry comes from the client per the code comment, were not limited to the layer's bounds. Per the commit message, a crafted blur region on a 1-2 pixel layer could make the blur "escape" the layer bounds and fill the entire screen. The blurred image is generated from blurInput, a snapshot of the content drawn so far.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to March 2026 · Findings