Android security tags, read closely by Lightrion

CVE-2023-40073 AI-generated analysis

platform/frameworks/base, core/java/android/app/Notification.java (Notification.visitUris)

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.

Notification.visitUris() now visits the MessagingStyle extras (EXTRA_MESSAGES, EXTRA_HISTORIC_MESSAGES, EXTRA_CONVERSATION_ICON) and the CallStyle extras (EXTRA_CALL_PERSON, call verification icon) whenever extras is non-null. Before the fix this happened only when isStyle(MessagingStyle.class) or isStyle(CallStyle.class) was true. The already-unconditional EXTRA_MESSAGING_PERSON visit is moved next to the other MessagingStyle extras.

Root cause

In Notification.visitUris(), several URIs were visited only inside `if (isStyle(MessagingStyle.class) && extras != null)` and `if (isStyle(CallStyle.class) & extras != null)` blocks. For MessagingStyle these were the sender icons in EXTRA_MESSAGES and EXTRA_HISTORIC_MESSAGES and EXTRA_CONVERSATION_ICON. For CallStyle they were the EXTRA_CALL_PERSON icon and the verification icon. An app can put these extras into notification.extras without applying the style to the Builder; the test does this with messagingStyle.addExtras(notification.extras) and callStyle.addExtras(notification.extras). In that case isStyle() is false and the visitor never sees those URIs. Per the comment added by the fix, Notification Listeners may still use these extras directly without an isStyle check.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to December 2023 · Findings