Android security tags, read closely by Lightrion

CVE-2025-48594 AI-generated analysis

platform/frameworks/base, services/companion (CompanionDeviceManagerService on 14; association/DisassociationProcessor on 15/16)

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.

The CompanionDeviceManager UID callback that drains revoked/pending associations now resolves every package sharing a UID via PackageManager.getPackagesForUid() and processes pending revoked associations for each of them, instead of only the single package name previously resolved for the UID.

Root cause

In the UID callback of CompanionDeviceManagerService (Android 14, hunk around line 1562) the code called getPackageNameByUid(uid) and then iterated getPendingRoleHolderRemovalAssociationsForUser(userId) looking only for associations whose getPackageName() equalled that single name. On 15/16 the same logic in DisassociationProcessor used mPackageManagerInternal.getNameForUid(uid) and only disassociated mAssociationStore.getRevokedAssociations(userId, packageName) for that one name. For a UID shared by several packages, revoked associations belonging to packages other than the resolved name were not matched and stayed pending.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to December 2025 · Findings