Android security tags, read closely by Lightrion

CVE-2025-48593 AI-generated analysis

platform/packages/modules/Bluetooth, system/bta/hf_client (HFP hands-free client, SDP discovery)

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

bta_hf_client_cb_init now cancels any outstanding SDP service search and frees the HF client's discovery database (p_disc_db) before the control block is zeroed, instead of silently dropping the pointer.

Root cause

In system/bta/hf_client/bta_hf_client_main.cc, bta_hf_client_cb_init released the collision timer and the hf_indicators containers and then reset the whole control block with `*client_cb = {}`, without handling client_cb->p_disc_db. If a discovery database was allocated and an SDP search was outstanding, the reset discarded the pointer without cancelling the search or freeing the database. A comment in the Android 16 code (bta_hf_client_do_disc) says a preexisting discovery database can lead to a race and a UAF once the connection is closed. The Android 14 commit message says the earlier flag-guarded changes for b/291281168 only partly resolved the issue and that a check was needed at this additional location.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to November 2025 · Findings