Android security tags, read closely by Lightrion

CVE-2026-0049 AI-generated analysis

platform/external/dng_sdk (dng_misc_opcodes.cpp, MapTable opcode) and platform/frameworks/base (com.android.internal.widget.LocalImageResolver, MessagingStyle/ConversationStyle image loading)

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

Two-part fix: external/dng_sdk rewrites the plane loop in dng_opcode_MapTable::ProcessArea so the bound no longer computes fAreaSpec.Plane() + fAreaSpec.Planes() (which can wrap in uint32) and marks dng_area_spec::ScaledOverlap no-sanitize for unsigned-integer-overflow; frameworks/base adds a MIME-type allowlist to LocalImageResolver so images in non-allowlisted formats (including DNG) are rejected.

Root cause

In source/dng_misc_opcodes.cpp, dng_opcode_MapTable::ProcessArea iterated planes with the condition `plane < fAreaSpec.Plane () + fAreaSpec.Planes ()`, a uint32 addition of area-spec values that can wrap. The commit title ("Handle underflows") and the added DNG_ATTRIB_NO_SANITIZE("unsigned-integer-overflow") on dng_area_spec::ScaledOverlap indicate unsigned arithmetic in these functions wraps on crafted input; the bulletin classifies the issue as DoS. On the frameworks/base side, LocalImageResolver previously did not restrict which codec/MIME type was decoded, so DNG input reached the decoder.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to April 2026 · Findings