Android security tags, read closely by Lightrion

CVE-2026-55270 AI-generated analysis

platform/frameworks/opt/telephony, Phone dial / USSD handling (GsmCdmaPhone, imsphone/ImsPhone)

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.

Adds a `wrappedCallback == null` guard before `handleInCallMmiCommands(newDialString)` in `dialInternal` of both `GsmCdmaPhone` and `ImsPhone`, so that USSD requests (which carry a non-null ResultReceiver) are no longer interpreted as in-call MMI supplementary-service commands.

Root cause

`dialInternal(String dialString, DialArgs dialArgs, ResultReceiver wrappedCallback)` serves both ordinary dialing (`ImsPhone.dial` passes `wrappedCallback = null`, per the code context) and USSD requests, which according to the commit message and tests carry a non-null ResultReceiver (the tests call `handleUssdRequest("2", mockCallback)`). Before the fix, `dialInternal` called `handleInCallMmiCommands(newDialString)` with no condition: on every call in ImsPhone, and inside the `isPhoneTypeGsm()` branch in GsmCdmaPhone. It returned whenever the string was handled. A USSD request whose string matched an in-call MMI code (the tests use "2") therefore ran the matching in-call supplementary service instead of being treated as USSD. The tests check `acceptCall` on the call trackers, and the commit message also names hold, swap and conference. The bulletin rates this as a High severity EoP.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to October 2026 · Findings