Android security tags, read closely by Lightrion

CVE-2026-0095 AI-generated analysis

platform/packages/modules/Bluetooth, L2CAP flow control / retransmission (system/stack/l2cap/l2c_fcr.cc)

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

Widens the local buf_size in l2c_fcr_clone_buf (system/stack/l2cap/l2c_fcr.cc) from uint16_t to uint32_t so the allocation size for the cloned L2CAP buffer is no longer truncated before osi_malloc, preventing a heap buffer overflow in the following memcpy.

Root cause

l2c_fcr_clone_buf(BT_HDR* p_buf, uint16_t new_offset, uint16_t no_of_bytes) computes the size of the new buffer as no_of_bytes + sizeof(BT_HDR) + new_offset + L2CAP_FCS_LEN and stored it in a uint16_t buf_size. Both no_of_bytes and new_offset are 16-bit, so their sum plus the header and FCS bytes can exceed 65535. The assignment truncated the value, osi_malloc(buf_size) then returned a buffer smaller than required, and the subsequent memcpy of no_of_bytes bytes to ((uint8_t*)(p_buf2 + 1)) + new_offset wrote past the end of the allocation.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to June 2026 · Findings