CVE-2026-31393
Published: 03 April 2026
Summary
CVE-2026-31393 is a high-severity Out-of-bounds Read (CWE-125) vulnerability in Linux Linux Kernel. Its CVSS base score is 8.1 (High).
Operationally, exploitation aligns with the MITRE ATT&CK technique Exploitation of Remote Services (T1210); ranked at the 16.6th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog.
The strongest mitigations our analysis identified are NIST 800-53 SI-10 (Information Input Validation) and SI-2 (Flaw Remediation).
Deeper analysis
CVE-2026-31393 is a vulnerability in the Linux kernel's Bluetooth L2CAP subsystem. The function l2cap_information_rsp() validates that the command length covers the fixed L2CAP_INFO_RSP header (type and result, 4 bytes) but fails to check payload length before accessing data beyond it. This leads to out-of-bounds reads: L2CAP_IT_FEAT_MASK invokes get_unaligned_le32(rsp->data), requiring 4 additional bytes (cmd_len >= 8), while L2CAP_IT_FIXED_CHAN reads rsp->data[0], requiring 1 additional byte (cmd_len >= 5). A truncated L2CAP_INFO_RSP with result L2CAP_IR_SUCCESS triggers reads of adjacent skb data.
An attacker with adjacent physical proximity (Bluetooth range) can exploit this vulnerability with low attack complexity, no privileges required, and no user interaction. Exploitation involves sending a malformed L2CAP_INFO_RSP packet, resulting in high confidentiality impact via information disclosure from the out-of-bounds read and high availability impact, such as denial of service from kernel crashes, as reflected in the CVSS score of 8.1 (CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H).
Mitigation patches, available in the referenced Linux kernel stable commits, add explicit payload length checks before each data access in l2cap_information_rsp(). If the payload is insufficient, the reads are skipped, relying on safe defaults (feat_mask and remote_fixed_chan zeroed from kzalloc), ensuring the info timer cleanup and l2cap_conn_start() proceed without stalling the Bluetooth connection.
EU & UK References
- 🇪🇺 ENISA EUVD: EUVD-2026-18768
Vulnerability details
In the Linux kernel, the following vulnerability has been resolved: Bluetooth: L2CAP: Validate L2CAP_INFO_RSP payload length before access l2cap_information_rsp() checks that cmd_len covers the fixed l2cap_info_rsp header (type + result, 4 bytes) but then reads rsp->data without verifying that the…
more
payload is present: - L2CAP_IT_FEAT_MASK calls get_unaligned_le32(rsp->data), which reads 4 bytes past the header (needs cmd_len >= 8). - L2CAP_IT_FIXED_CHAN reads rsp->data[0], 1 byte past the header (needs cmd_len >= 5). A truncated L2CAP_INFO_RSP with result == L2CAP_IR_SUCCESS triggers an out-of-bounds read of adjacent skb data. Guard each data access with the required payload length check. If the payload is too short, skip the read and let the state machine complete with safe defaults (feat_mask and remote_fixed_chan remain zero from kzalloc), so the info timer cleanup and l2cap_conn_start() still run and the connection is not stalled.
- CWE(s)
Related Threats
MITRE ATT&CK Enterprise TechniquesAI
Why these techniques?
Vuln in Bluetooth L2CAP remote service enables direct exploitation over adjacent network (T1210) to trigger kernel OOB read leading to crashes/DoS (T1499.004); info disclosure impact noted but no precise technique match beyond general system data exposure.
CVEs Like This One
Affected Assets
Mitigating Controls
Mitigating Controls (NIST 800-53 r5) AI
Directly requires validating the length of L2CAP_INFO_RSP payloads before accessing rsp->data to prevent out-of-bounds reads of adjacent skb data.
Mandates timely flaw remediation by applying kernel patches that add payload length checks in l2cap_information_rsp() to fix the validation deficiency.
Ensures error handling for truncated L2CAP_INFO_RSP packets uses safe defaults instead of invalid reads, avoiding information disclosure and kernel crashes.