Android security tags, read closely by Lightrion

CVE-2025-48631 AI-generated analysis

platform/frameworks/base, core/java/com/android/internal/widget/LocalImageResolver (MessagingStyle/ConversationStyle image loading via ImageDecoder)

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 (5 corrections). Verify against the commit before relying on it.

Adds a hard 4096 px per-dimension limit in LocalImageResolver.onHeaderDecoded so that decoding of oversized images is aborted (RuntimeException, surfaced as IOException from resolveImage) instead of being attempted at the risk of exhausting device memory.

Root cause

LocalImageResolver.onHeaderDecoded is the ImageDecoder header listener used by resolveImage. It reads the image size from ImageDecoder.ImageInfo and goes straight to computing a ratio against maxWidth/maxHeight (DEFAULT_MAX_SAFE_ICON_SIZE_PX = 480 when called from resolveImage(Uri, Context)). Nothing rejected very large declared dimensions first. The commit message notes that formats such as JPEG allow up to 65,535x65,535 pixels, which cannot realistically fit in memory, and says a notification caused a crashloop without this change.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to March 2026 · Findings