Android security tags, read closely by Lightrion

CVE-2025-0082 AI-generated analysis

platform/frameworks/base (telecomm/java/android/telecom/StatusHints.java) and platform/packages/services/Telecomm (TelecomServiceImpl), Telecom icon URI 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 (2 corrections). Verify against the commit before relying on it.

Replaces the Uri.getEncodedUserInfo()-based cross-user icon check in telecom StatusHints and TelecomServiceImpl (phone account registration) with a new StatusHints.getUserIdFromAuthority() helper that derives the user id from the URI authority (getAuthority()) and rejects any mismatch or unparsable user id.

Root cause

Both StatusHints (icon validation returning the icon or null) and TelecomServiceImpl (icon validation when registering a phone account) decided whether a TYPE_URI / TYPE_URI_ADAPTIVE_BITMAP icon belonged to the calling user by calling icon.getUri().getEncodedUserInfo(). If that returned null the code assumed the URI targeted the calling user's space and accepted it. Per the commit message and the new tests, an authority written with a percent-encoded separator (e.g. encodedAuthority "10%40media" or "content://10%40play.ground") is not parsed properly by that accessor, so the user id embedded in the authority was not compared against the caller and an icon URI naming another user passed validation. The old code also called Integer.parseInt on the user-info without catching NumberFormatException.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to March 2025 · Findings