Android security tags, read closely by Lightrion

CVE-2025-32346 AI-generated analysis

platform/packages/services/Telephony, Phone app voicemail settings (com.android.phone.settings.VoicemailSettingsActivity)

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.

In VoicemailSettingsActivity.onActivityResult, the contact URI returned by a picker activity is now validated with ComponentCaller.checkContentUriPermission(FLAG_GRANT_READ_URI_PERMISSION) against the component that delivered the result, instead of only comparing the user ID encoded in the URI with the Phone app's own user ID; denial now logs an EventLog entry and throws SecurityException.

Root cause

VoicemailSettingsActivity.onActivityResult receives an Intent result containing a contact URI and queries it with getContentResolver().query(...) using the Phone app's own privileges. The only validation was `UserHandle.getUserId(Process.myUid()) != ContentProvider.getUserIdFromUri(data.getData(), currentUser)`, i.e. it checked whether the user ID embedded in the URI matched the current user. This does not verify that the component returning the result actually holds read access to that URI, so the Phone app could be made to read contact data (the commit's test steps reference a work profile contact) on behalf of a caller that has no such access.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to September 2025 · Findings