Android security tags, read closely by Lightrion

CVE-2025-26454 AI-generated analysis

platform/packages/apps/ManagedProvisioning, provisioning parameter parser (DisclaimersParserImpl, disclaimer/terms content handling)

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.

ManagedProvisioning's DisclaimersParserImpl now validates each caller-supplied EXTRA_PROVISIONING_DISCLAIMER_CONTENT Uri before copying its content into the provisioning disclaimer cache. The scheme must be content or android.resource, and for content URIs the Binder caller must hold read permission. Any disclaimer that fails validation is skipped.

Root cause

In src/com/android/managedprovisioning/parser/DisclaimersParserImpl.java, the parse loop took the Uri from each disclaimer bundle (EXTRA_PROVISIONING_DISCLAIMER_CONTENT) and, after only a null check, passed it straight to saveDisclaimerContentIntoFile(uri, i). Nothing verified the URI scheme, or whether the app that supplied the provisioning extras was itself allowed to read that URI. ManagedProvisioning therefore copied the content into its disclaimer cache on the caller's behalf. The terms UI later uses that cache (the commit title names termsActivity). This let ManagedProvisioning act as a confused deputy for content the caller could not access directly.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to September 2025 · Findings