Android security tags, read closely by Lightrion

CVE-2025-22420 AI-generated analysis

platform/frameworks/base, NotificationManagerService / PreferencesHelper (notification channels)

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.

Adds a Uri read-permission check (UriGrantsManagerInternal.checkGrantUriPermission) on a content:// sound Uri when a new notification channel is created in PreferencesHelper.createNotificationChannel, and moves the check into a new PermissionHelper.grantUriPermission helper. On Android 14 a first commit made channel creation throw SecurityException; a second commit falls back to the default notification sound instead.

Root cause

PreferencesHelper.createNotificationChannel accepted and stored any sound Uri supplied for a new channel without checking that the uid could read or grant that Uri. Per the commit message, Uri permissions for the channel sound were only checked later, by NotificationRecord (visitGrantableUri) when a notification was posted. For privileged listener updates a check also existed in NotificationManagerService. So the stored channel sound Uri was not validated when it entered the channel preferences.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to December 2025 · Findings