Android security tags, read closely by Lightrion

CVE-2025-48648 AI-generated analysis

platform/frameworks/base, NotificationManagerService (services/core/java/com/android/server/notification)

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 (3 corrections). Verify against the commit before relying on it.

NotificationManagerService stops relying on PackageManagerInternal.isSameApp (which, per the commit message, carries an SDK sandbox exception) for its caller-owns-package enforcement and instead compares the caller uid directly against the package uid, and additionally rejects SDK sandbox uids in areNotificationsEnabledForPackage and checks system/SystemUI/shell identity before canNotifyAsPackage in getConversationNotificationChannel.

Root cause

The private same-app enforcement helper in NotificationManagerService.java (the method that throws SecurityException "Package <pkg> is not owned by uid <uid>", after the ROOT_UID/ROOT_PKG early return) delegated to mPackageManagerInternal.isSameApp(pkg, uid, userId). The commit message states this check included an SDK sandbox exception, so a caller whose uid is not the package's uid could still pass the same-package enforcement (likely reached via enforceSystemOrSystemUIOrSamePackage, though the call chain is not shown in the material). areNotificationsEnabledForPackage(pkg, uid) had no explicit rejection of sandbox uids, and getConversationNotificationChannel evaluated canNotifyAsPackage(callingPkg, targetPkg, userId) before the system/SystemUI/shell identity check. The bulletin classifies the result as DoS (High); the material does not show the concrete failure mode.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to June 2026 · Findings