Android security tags, read closely by Lightrion

CVE-2025-32312 AI-generated analysis

platform/frameworks/base, core/java/android/content/pm/PackageParser.java (component parcel deserialization, createIntentsList)

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.

Adds a type check in PackageParser's createIntentsList so that a class read by name from a Parcel is only constructed if it is a subclass of IntentInfo. Before, the code reflectively constructed any class named in the parcel.

Root cause

createIntentsList(Parcel in) reads a count N and then a String componentName from the Parcel. It calls Class.forName(componentName), looks up a constructor that takes a Parcel, and calls cons.newInstance(in) N times. Nothing checked that the named class was an IntentInfo subclass, so any class with a public (Parcel) constructor named in the parcel data would be loaded and constructed from the rest of the parcel. The writer side (writeIntentsList) only ever writes info.getClass().getName() of a real IntentInfo, but the reader trusted the string without checking it.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to June 2025 · Findings