Android security tags, read closely by Lightrion

CVE-2026-28603 AI-generated analysis

platform/packages/apps/Settings, users / AppRestrictionsFragment (app restrictions custom activity launch)

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.

In Settings' AppRestrictionsFragment, the vetted copy of the app-supplied custom restrictions activity Intent now has all four FLAG_GRANT_*_URI_PERMISSION flags removed and its data and clipData cleared before Settings calls startActivityForResult on it.

Root cause

RestrictionsResultReceiver.assertSafeToStartCustomActivity in src/com/android/settings/users/AppRestrictionsFragment.java builds vettedIntent as new Intent(intent) from the untrusted Intent, resolves it, checks only that the resolved activity's package equals the expected packageName, then pins component and package. Everything else from the untrusted Intent was kept, including FLAG_GRANT_READ/WRITE/PERSISTABLE/PREFIX_URI_PERMISSION, the data URI and the ClipData. The caller (lines 658-661) then invokes AppRestrictionsFragment.this.startActivityForResult(vettedIntent, requestCode), so Settings launched the activity with grant flags and URIs chosen by the app.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to September 2026 · Findings