Android security tags, read closely by Lightrion

CVE-2025-26436 AI-generated analysis

platform/frameworks/base, ActivityManager PendingIntentRecord (background start / temp allowlist privileges of PendingIntents)

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.

PendingIntentRecord.clearAllowBgActivityStarts now also downgrades the token's duration-based temp-allowlist entry from TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_ALLOWED to TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_NOT_ALLOWED, instead of only removing the token from the BAL token sets; a companion commit adds equals/hashCode to BackgroundStartPrivileges for the tests.

Root cause

PendingIntentRecord keeps two kinds of background-start privilege state per allowlist token: the token sets mAllowBgActivityStartsForActivitySender / mAllowBgActivityStartsForBroadcastSender / mAllowBgActivityStartsForServiceSender, and the duration-based map mAllowlistDuration (TempAllowListDuration with a duration and a type). clearAllowBgActivityStarts(IBinder token) only removed the token from the three sets and left the mAllowlistDuration entry untouched (commit message: 'only cleared the tokens, but kept the duration based entries'), so an entry with type TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_ALLOWED stayed in place after the caller (per the commit message, SystemUI in NotificationManagerService) cleared the BAL privileges of that PendingIntent.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to May 2025 · Findings