Android security tags, read closely by Lightrion

CVE-2025-26426 AI-generated analysis

platform/frameworks/base, ActivityManagerService (broadcast receiver registration)

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

Removes the special case in ActivityManagerService.registerReceiverWithFeature that let any caller pass "android" as callerPackage without being validated against the calling process's package list, and then widens the exemption from SYSTEM_UID to all core uids so system components in other core processes keep working.

Root cause

In services/core/java/com/android/server/am/ActivityManagerService.java, registerReceiverWithFeature verified that the supplied callerPackage is actually running in the calling process (callerApp.getPkgList().containsKey(callerPackage)) unless the caller was SYSTEM_UID, but it also skipped the check whenever callerPackage equaled "android" (`&& !"android".equals(callerPackage)`). A caller with a process record known to AMS could therefore supply "android" as its package name without the ownership check; in the shown context callerPackage is then passed to isInstantApp and mUserController.handleIncomingUser.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to May 2025 · Findings