Android security tags, read closely by Lightrion

CVE-2025-22410 AI-generated analysis

platform/packages/modules/Bluetooth, system/stack (avct, bnep, hid, rfcomm, sdp)

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.

Across nine L2CA_DataWrite call sites in the Bluetooth stack (AVCTP, BNEP, HID device, RFCOMM, SDP), the failure-path log statement is changed to use a length captured before the call (a local variable or a pointer difference) instead of reading the BT_HDR buffer, which may have been freed by the time the log runs.

Root cause

In several stack modules the code called L2CA_DataWrite(cid, p_buf) and, if the result was not L2CAP_DW_SUCCESS, ran log::warn("Unable to write L2CAP data ... len:{}", ..., p_buf->len). The commit message says these structures may, in exceptional cases, already have been freed by the preceding call. The log argument therefore read a possibly freed BT_HDR (p_buf->len, p->len, p_msg->len, hd_cb.pending_data->len).

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to March 2025 · Findings