CVE-2026-64127
Received Received - Intake

Memory Corruption in Linux Kernel Bluetooth L2CAP

Vulnerability report for CVE-2026-64127, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-07-19

Last updated on: 2026-07-19

Assigner: kernel.org

Description

In the Linux kernel, the following vulnerability has been resolved: Bluetooth: L2CAP: ecred_reconfigure: send packed pdu, not stack pointer Commit 1c08108f3014 ("Bluetooth: L2CAP: Avoid -Wflex-array-member-not-at-end warnings") converted the on-stack request PDU in l2cap_ecred_reconfigure() from an explicit packed struct to DEFINE_RAW_FLEX(), but did not adjust the size and source-pointer arguments to l2cap_send_cmd(): - struct { - struct l2cap_ecred_reconf_req req; - __le16 scid; - } pdu; + DEFINE_RAW_FLEX(struct l2cap_ecred_reconf_req, pdu, scid, 1); ... l2cap_send_cmd(conn, chan->ident, L2CAP_ECRED_RECONF_REQ, sizeof(pdu), &pdu); After the conversion, DEFINE_RAW_FLEX() expands to declare an anonymous union pdu_u plus a local pointer "pdu" pointing at it. Therefore: - sizeof(pdu) is now sizeof(struct l2cap_ecred_reconf_req *) = 8 on 64-bit (4 on 32-bit), not the 6 bytes of (mtu, mps, scid[1]). - &pdu is the address of the local pointer's stack storage, not the address of the request payload. l2cap_send_cmd() forwards (data, count) to l2cap_build_cmd(), which calls skb_put_data(skb, data, count). The L2CAP_ECRED_RECONFIGURE_REQ packet body therefore contains 8 bytes copied from the kernel stack starting at &pdu -- the 8 bytes overlap the pdu pointer's value, leaking a kernel stack address to the paired Bluetooth peer. The intended (mtu, mps, scid) fields are not transmitted at all, so the peer rejects the request as malformed and the L2CAP_ECRED_RECONFIGURE feature itself has been broken for the local-side initiator since the introducing commit landed. The sibling site l2cap_ecred_conn_req() in the same commit was converted correctly (sizeof(*pdu) + len, pdu); only this site was missed. Restore the original semantics: pass the full flex-struct size via struct_size(pdu, scid, 1) and the pdu pointer (the struct address) as the source. Validated on a stock 7.0-based host kernel via the real call path: setsockopt(SOL_BLUETOOTH, BT_RCVMTU, ...) on a BT_CONNECTED L2CAP_MODE_EXT_FLOWCTL socket emits an L2CAP_ECRED_RECONFIGURE_REQ whose body is 8 bytes (the on-stack pdu local's value) rather than the expected 6. Three captures from fresh socket / fresh hciemu peer on the same host -- low bytes vary per call, high 0xffff confirms a kernel virtual address (KASLR-randomised stack slot, not a fixed string): RECONF_REQ body (ident=0x02 len=8): 42 fb 54 af 0e ca ff ff RECONF_REQ body (ident=0x02 len=8): 52 3d 2e af 0e ca ff ff RECONF_REQ body (ident=0x02 len=8): b2 fc 5b af 0e ca ff ff After this patch the body is 6 bytes carrying the expected little-endian (mtu, mps, scid).

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-07-19
Last Modified
2026-07-19
Generated
2026-07-20
AI Q&A
2026-07-19
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 1 associated CPE
Vendor Product Version / Range
linux linux_kernel to 7.0 (inc)

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-UNKNOWN

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability in the Linux kernel involves a Bluetooth L2CAP (Logical Link Control and Adaptation Protocol) issue where a struct conversion error leads to incorrect data transmission. The code change mistakenly used a pointer size instead of the actual struct size, causing the kernel stack address to be leaked to a paired Bluetooth device instead of sending the intended configuration data.

Detection Guidance

This vulnerability affects the Linux kernel's Bluetooth L2CAP implementation and may leak kernel stack addresses. Detection requires checking kernel logs or network captures for malformed L2CAP_ECRED_RECONFIGURE_REQ packets with 8-byte payloads instead of the expected 6 bytes. Use tools like Wireshark or tcpdump to monitor Bluetooth traffic for these anomalies.

Impact Analysis

This vulnerability allows a remote Bluetooth peer to receive a kernel stack memory address, which could be used for further exploitation. It also breaks the L2CAP_ECRED_RECONFIGURE feature, preventing proper Bluetooth connection reconfiguration. The impact is limited to Bluetooth communication and does not directly affect other system functions.

Compliance Impact

This vulnerability does not directly affect compliance with GDPR or HIPAA as it involves a Bluetooth stack memory leak in the Linux kernel. However, if exploited, it could potentially expose kernel memory addresses to an attacker, which might indirectly aid in further attacks. No evidence suggests direct impact on data protection or privacy compliance.

Mitigation Strategies

Apply the kernel patch that restores the correct packet size and pointer in l2cap_ecred_reconfigure(). Until patched, avoid using Bluetooth L2CAP_MODE_EXT_FLOWCTL sockets or restrict Bluetooth peer connections to trusted devices. Monitor kernel updates from your Linux distribution for the fix.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-64127. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart