Android security tags, read closely by Lightrion

CVE-2024-31325 AI-generated analysis

platform/frameworks/base, SystemUI notification row inflation (ExpandableNotificationRow / NotificationInlineImageResolver / RowInflaterTask)

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.

SystemUI now constructs each ExpandableNotificationRow's NotificationInlineImageResolver with a Context bound to the notification's own user (via createContextAsUser when it differs from SystemUI's user) instead of SystemUI's application context, so inline message/conversation image Uris are resolved with the notification's user id.

Root cause

ExpandableNotificationRow(Context, AttributeSet) passed its context to NotificationInlineImageResolver. The resolver constructor replaced it with context.getApplicationContext(), SystemUI's own application context, and stored that in mContext for image Uri resolution. Message/conversation image Uris carried in a notification were therefore resolved with SystemUI's user id, whichever user posted the notification. RowInflaterTask inflated the row from R.layout.status_bar_notification_row through a plain AsyncLayoutInflater, which had no way to pass the NotificationEntry (and thus the user) into the row constructor.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to June 2024 · Findings