Android security tags, read closely by Lightrion

CVE-2026-58859 AI-generated analysis

platform/packages/modules/Telephony, TS.43 entitlement phone number retrieval (Ts43PhoneNumberRetriever / Ts43PhoneNumberController)

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 (4 corrections). Verify against the commit before relying on it.

Changes catch (Exception) to catch (Throwable) in Ts43PhoneNumberRetriever.fetchPhoneNumber and adds a new catch (Throwable) in the Ts43PhoneNumberController fetch method, so a StackOverflowError from JSON parsing of a server response no longer escapes and crashes the process.

Root cause

Per the commit message, a deeply nested JSON response from the TS.43 server causes unbounded recursion in JSONTokener during the phone number fetch. The tests model this as a StackOverflowError thrown from Ts43Operation.getPhoneNumber in step 3 (getPhoneNumberWithToken). A StackOverflowError is a java.lang.Error, not an Exception, so the existing catch (Exception e) in Ts43PhoneNumberRetriever.fetchPhoneNumber did not catch it. The caller in Ts43PhoneNumberController only caught ServiceEntitlementException, so the Error escaped and crashed the process. In the controller, the per-subscription in-progress flag (mIsTs43QueryInProgressPerSub) is set before the try block. An escaping Error skipped queryCompleted, so that state was not released, as the new controller test shows.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to October 2026 · Findings