Android security tags, read closely by Lightrion

CVE-2025-0083 AI-generated analysis

platform/frameworks/base (telecomm/java/android/telecom/StatusHints.java) and platform/packages/services/Telecomm (TelecomServiceImpl phone account icon validation)

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.

Replaces the Uri.getEncodedUserInfo()-based cross-user check on content-URI icons in StatusHints and in TelecomServiceImpl (phone account registration) with a new StatusHints.getUserIdFromAuthority() helper. The helper parses the user id from Uri.getAuthority() and rejects any icon whose user id differs from the caller's, including the percent-encoded test forms and non-numeric prefixes.

Root cause

StatusHints (icon validation near line 150) and TelecomServiceImpl (icon check during phone account registration, near line 3150) both took the target user id of a TYPE_URI / TYPE_URI_ADAPTIVE_BITMAP icon from icon.getUri().getEncodedUserInfo(). When that value was null, the code assumed the URI pointed at the calling user and accepted the icon. Per the commit message, a URI formatted as `userId%` is not parsed properly this way, so the cross-user check could be bypassed. The new tests use authorities '10%40media' and '10%40play.ground'. The old code also called Integer.parseInt(encodedUser) without handling NumberFormatException.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to March 2025 · Findings