Android security tags, read closely by Lightrion

CVE-2024-49742 AI-generated analysis

platform/packages/apps/Settings, notification listener access confirmation (CDM / NLS flow)

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.

NotificationAccessConfirmationActivity in Settings now verifies, before showing the grant dialog, that the requesting package declares a service resolving the NotificationListenerService intent action for the target user and that this service is protected by BIND_NOTIFICATION_LISTENER_SERVICE, finishing the activity otherwise, and it drops the onBackPressed override that prevented dismissal.

Root cause

NotificationAccessConfirmationActivity receives a component name and user id via EXTRA_COMPONENT_NAME / EXTRA_USER_ID (NotificationAccessConfirmationActivityContract) and, on user approval, calls mNm.setNotificationListenerAccessGranted(mComponentName, true). Before the fix the only validation was in onAllow(): PackageManager.getServiceInfo(mComponentName, 0) and a comparison of serviceInfo.permission against BIND_NOTIFICATION_LISTENER_SERVICE. It never checked that the component declared an intent-filter for android.service.notification.NotificationListenerService, the lookup was not done for mUserId, and the check ran only after the dialog had been shown. The activity also overrode onBackPressed() to suppress finishing, so the back button did not dismiss the dialog.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to January 2025 · Findings