Android security tags, read closely by Lightrion

CVE-2026-0100 AI-generated analysis

platform/frameworks/base, libs/androidfw (libandroidfw resource table parser, LoadedArsc)

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

Adds a range check in LoadedPackage::Load (libs/androidfw/LoadedArsc.cpp) so that a RES_TABLE_PACKAGE_TYPE chunk whose 32-bit package id exceeds 255 is rejected and the ARSC fails to load instead of being accepted with an out-of-range package id.

Root cause

In LoadedPackage::Load, the package id was taken directly from the ResTable_package header (loaded_package->package_id_ = dtohl(header->id)) without validation. The field in the chunk is 32-bit, but per the commit message resource IDs allocate only 8 bits for the package id. A malformed ARSC with id > 255 was accepted, and the commit message states this could lead to unexpected behavior or overflow during parsing. The neighbouring typeIdOffset field already had an equivalent uint8_t range check in the same function; the id field did not.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to June 2026 · Findings