Android security tags, read closely by Lightrion

CVE-2025-26456 AI-generated analysis

platform/art, libartservice (ART Service) DexUseManagerLocal

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

Bounds the ART dex-use database in DexUseManagerLocal by capping secondary dex path length (4096), class loader context length (10000) and the number of secondary dex entries per owning package (500). Two follow-up commits first made the companion file-existence check symlink-safe and then removed it entirely because of sepolicy restrictions.

Root cause

Per its own class comment, DexUseManagerLocal collects data sent directly by apps. Before the fix, addSecondaryDexUse ran computeIfAbsent on mSecondaryDexUseByDexFile for any dexPath, with no cap on the number of distinct secondary dex paths per owning package. The input validation loop in notifyDexContainersLoaded only checked that the path was non-empty and absolute, with no length limit on the dex path or the class loader context strings. The resulting entries are persisted to /data/system/package-dex-usage.pb, so the in-memory map and the on-disk database could grow without bound. The commit message puts the size at O(owning package x dex path x loading package), with secondary dex paths potentially unbounded.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to June 2025 · Findings