Skip to content
OpenAdvisories
Unscored CVE-2026-64127 EUVD-2026-45812GHSA-w532-m3j8-f99h

Bluetooth: L2CAP: ecred_reconfigure: send packed pdu, not stack pointer

Published Jul 19, 2026 · Updated Nov 6, 2026 · Assigned by Linux

Vendor: Linux Product: Linux Package: linux Package: linux Package: linux-allwinner-5.19 Package: linux-aws Package: linux-aws-5.0 Package: linux-aws-5.11 Package: linux-aws-5.13 Package: linux-aws-5.19 Package: linux-aws-5.3 Package: linux-aws-5.8 Package: linux-aws-6.14 Package: linux-aws-6.17 Package: linux-aws-6.2 Package: linux-aws-6.5 Package: linux-aws-6.8 Package: linux-aws-fips Package: linux-azure Package: linux-azure-5.11 Package: linux-azure-5.13 Package: linux-azure-5.19 Package: linux-azure-5.3 Package: linux-azure-5.8 Package: linux-azure-6.11 Package: linux-azure-6.14 Package: linux-azure-6.17 Package: linux-azure-6.2 Package: linux-azure-6.5 Package: linux-azure-6.8 Package: linux-azure-7.0 Package: linux-azure-edge Package: linux-azure-fde Package: linux-azure-fde-5.19 Package: linux-azure-fde-6.14 Package: linux-azure-fde-6.17 Package: linux-azure-fde-6.2 Package: linux-azure-fde-6.8 Package: linux-azure-fde-7.0 Package: linux-azure-fips Package: linux-azure-nvidia Package: linux-azure-nvidia-6.14 Package: linux-bluefield Package: linux-fips Package: linux-gcp Package: linux-gcp-5.11 Package: linux-gcp-5.13 Package: linux-gcp-5.19 Package: linux-gcp-5.3 Package: linux-gcp-5.8 Package: linux-gcp-6.11 Package: linux-gcp-6.14 Package: linux-gcp-6.17 Package: linux-gcp-6.2 Package: linux-gcp-6.5 Package: linux-gcp-6.8 Package: linux-gcp-7.0 Package: linux-gcp-fips Package: linux-gke Package: linux-gke-4.15 Package: linux-gke-5.15 Package: linux-gke-5.4 Package: linux-gkeop Package: linux-gkeop-5.15 Package: linux-gkeop-5.4 Package: linux-hwe Package: linux-hwe-5.11 Package: linux-hwe-5.13 Package: linux-hwe-5.19 Package: linux-hwe-5.8 Package: linux-hwe-6.11 Package: linux-hwe-6.14 Package: linux-hwe-6.17 Package: linux-hwe-6.2 Package: linux-hwe-6.5 Package: linux-hwe-6.8 Package: linux-hwe-7.0 Package: linux-hwe-edge Package: linux-ibm Package: linux-ibm-6.8 Package: linux-intel-5.13 Package: linux-intel-iot-realtime Package: linux-lowlatency Package: linux-lowlatency-hwe-5.19 Package: linux-lowlatency-hwe-6.11 Package: linux-lowlatency-hwe-6.2 Package: linux-lowlatency-hwe-6.5 Package: linux-lowlatency-hwe-6.8 Package: linux-nvidia Package: linux-nvidia-6.11 Package: linux-nvidia-6.17 Package: linux-nvidia-6.2 Package: linux-nvidia-6.5 Package: linux-nvidia-6.8 Package: linux-nvidia-7.0 Package: linux-nvidia-bos Package: linux-nvidia-lowlatency Package: linux-nvidia-tegra Package: linux-oem Package: linux-oem-5.10 Package: linux-oem-5.13 Package: linux-oem-5.14 Package: linux-oem-5.17 Package: linux-oem-5.6 Package: linux-oem-6.0 Package: linux-oem-6.1 Package: linux-oem-6.11 Package: linux-oem-6.14 Package: linux-oem-6.17 Package: linux-oem-6.5 Package: linux-oem-6.8 Package: linux-oem-7.0 Package: linux-oracle Package: linux-oracle-5.0 Package: linux-oracle-5.11 Package: linux-oracle-5.13 Package: linux-oracle-5.3 Package: linux-oracle-5.8 Package: linux-oracle-6.14 Package: linux-oracle-6.17 Package: linux-oracle-6.5 Package: linux-oracle-6.8 Package: linux-oracle-7.0 Package: linux-raspi Package: linux-raspi-realtime Package: linux-raspi2 Package: linux-realtime Package: linux-realtime-6.14 Package: linux-realtime-6.17 Package: linux-realtime-6.8 Package: linux-riscv Package: linux-riscv-5.11 Package: linux-riscv-5.19 Package: linux-riscv-5.8 Package: linux-riscv-6.14 Package: linux-riscv-6.17 Package: linux-riscv-6.5 Package: linux-riscv-6.8 Package: linux-riscv-7.0 Package: linux-starfive-5.19 Package: linux-starfive-6.2 Package: linux-starfive-6.5 Package: linux-vmware Package: linux-xilinx Platform: Linux Ecosystem: Debian Ecosystem: Ubuntu

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).

Affected products

VendorProductAffectedFixed
Linux Linux 6.10 6.12.92

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 linux 7.0.12-1 —
Debian 13 linux 6.12.94-1 —
ReleasePackageFixed inAdvisory
Ubuntu Nvidia-BlueField 24.04 LTS linux-bluefield 6.8.0-1030.35 —
Ubuntu 26.04 LTS linux 7.0.0-28.28 —
Ubuntu 26.04 LTS linux-aws +2 7.0.0-1009.9 USN-8618-1, USN-8603-1
Ubuntu 26.04 LTS linux-gcp +1 7.0.0-1008.8 USN-8593-1
Ubuntu 26.04 LTS linux-gke 7.0.0-1003.4 —
Ubuntu 26.04 LTS linux-ibm +1 7.0.0-1010.10 USN-8603-1, USN-8593-1
Ubuntu 26.04 LTS linux-nvidia 7.0.0-1016.16 USN-8663-1
Ubuntu 26.04 LTS linux-nvidia-bos 7.0.0-2016.16 USN-8664-1
Ubuntu 26.04 LTS linux-raspi 7.0.0-1015.15 USN-8618-1
Ubuntu 26.04 LTS linux-riscv +1 7.0.0-28.28.1 —
Ubuntu 24.04 LTS linux 6.8.0-139.139 USN-8729-1
Ubuntu 24.04 LTS linux-aws 6.8.0-1064.67 USN-8729-6
Ubuntu 24.04 LTS linux-azure-7.0 7.0.0-1014.14~24.04.1 USN-8728-2
Ubuntu 24.04 LTS linux-azure-fde 6.8.0-1065.72 —
Ubuntu 24.04 LTS linux-azure-fde-7.0 7.0.0-1013.13~24.04.1 —
Ubuntu 24.04 LTS linux-gcp +1 6.8.0-1067.75 USN-8761-1, USN-8729-1
Ubuntu 24.04 LTS linux-gcp-7.0 +1 7.0.0-1011.11~24.04.1 USN-8728-3, USN-8728-1
Ubuntu 24.04 LTS linux-gke 6.8.0-1062.70 USN-8729-1
Ubuntu 24.04 LTS linux-gkeop 6.8.0-1049.53 USN-8729-1
Ubuntu 24.04 LTS linux-hwe-7.0 7.0.0-28.28~24.04.1 —
Ubuntu 24.04 LTS linux-ibm 6.8.0-1064.65 USN-8729-3
Ubuntu 24.04 LTS linux-lowlatency 6.8.0-139.139.1 USN-8729-4
Ubuntu 24.04 LTS linux-nvidia 6.8.0-1062.65 USN-8729-1
Ubuntu 24.04 LTS linux-nvidia-7.0 7.0.0-1016.16~24.04.1 USN-8663-1
Ubuntu 24.04 LTS linux-nvidia-lowlatency 6.8.0-1062.65.1 USN-8729-1
Ubuntu 24.04 LTS linux-nvidia-tegra 6.8.0-1035.38 USN-8781-1
Ubuntu 24.04 LTS linux-oracle 6.8.0-1061.64 USN-8802-1
Ubuntu 24.04 LTS linux-raspi 6.8.0-1064.68 USN-8729-1
Ubuntu 24.04 LTS linux-riscv +28 No fix yet —
Ubuntu 24.04 LTS linux-riscv-7.0 7.0.0-28.28.1~24.04.3 —
Ubuntu 24.04 LTS linux-vmware 6.8.0-1008.8 —
Ubuntu 24.04 LTS linux-xilinx 6.8.0-1036.37 USN-8729-3
Ubuntu 22.04 LTS linux-aws-6.8 6.8.0-1064.67~22.04.1 USN-8729-6
Ubuntu 22.04 LTS linux-azure-fde-6.8 6.8.0-1065.72~22.04.1 —
Ubuntu 22.04 LTS linux-gcp-6.8 +1 6.8.0-1067.75~22.04.1 USN-8761-3, USN-8729-3
Ubuntu 22.04 LTS linux-hwe-6.8 6.8.0-149.149~22.04.1 USN-9066-1
Ubuntu 22.04 LTS linux-ibm-6.8 6.8.0-1066.67~22.04.1 USN-8906-1
Ubuntu 22.04 LTS linux-lowlatency-hwe-6.8 6.8.0-139.139.1~22.04.1 USN-8729-4
Ubuntu 22.04 LTS linux-nvidia-6.8 6.8.0-1062.65~22.04.1 USN-8729-1
Ubuntu 22.04 LTS linux-oracle-6.8 6.8.0-1061.64~22.04.1 USN-8802-1
Ubuntu 22.04 LTS linux-riscv +32 No fix yet —
Ubuntu 22.04 LTS linux-riscv-6.8 6.8.0-139.139~22.04.1 —
Ubuntu 20.04 LTS linux-gke +28 No fix yet —
Show 5 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu 18.04 LTS linux-gcp +14 No fix yet —
Ubuntu 16.04 LTS linux-hwe-edge No fix yet —
Ubuntu Pro Realtime 24.04 LTS linux-raspi-realtime 6.8.0-2053.55 USN-8729-2
Ubuntu Pro Realtime 24.04 LTS linux-realtime 6.8.1-1059.60 USN-8729-1
Ubuntu Pro Realtime 24.04 LTS linux-realtime-6.14 +1 No fix yet —
Ubuntu Pro Realtime 22.04 LTS linux-realtime-6.8 6.8.1-1059.60~22.04.1 USN-8729-1
Ubuntu Pro FIPS-updates 24.04 LTS linux-aws-fips 6.8.0-1064.67+fips1 USN-8729-5
Ubuntu Pro FIPS-updates 24.04 LTS linux-fips 6.8.0-139.139+fips1 USN-8729-1
Ubuntu Pro FIPS-updates 24.04 LTS linux-gcp-fips +1 6.8.0-1067.75+fips1 USN-8761-2, USN-8729-1
ReleasePackageFixed inAdvisory
SLES 15 SP7 kernel-64kb +7 6.4.0-150700.53.81.1 SUSE-SU-2026:4254-1
SLES 15 SP7 kernel-default-base 6.4.0-150700.53.81.1.150700.17.45.1 SUSE-SU-2026:4254-1
Show 5 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
SLES for SAP 16.0 kernel-64kb +8 6.12.0-160000.38.1 SUSE-SU-2026:23902-1
SLES for SAP 16.0 kernel-default-base 6.12.0-160000.38.1.160000.2.23 SUSE-SU-2026:23902-1
SLES 16.0 kernel-64kb +8 6.12.0-160000.38.1 SUSE-SU-2026:23902-1, SUSE-SU-2026:23897-1
SLES 16.0 kernel-default-base 6.12.0-160000.38.1.160000.2.23 SUSE-SU-2026:23902-1
SLE Micro 6.2 kernel-default-base 6.12.0-160000.38.1.160000.2.23 SUSE-SU-2026:23887-1
SLE Micro 6.2 kernel-rt +5 6.12.0-160000.38.1 SUSE-SU-2026:23887-1, SUSE-SU-2026:23881-1
SLE Live Patching 15 SP7 kernel-default 6.4.0-150700.53.81.1 SUSE-SU-2026:4254-1
SLE Live Patching 15 SP7 kernel-livepatch-SLE15-SP7-RT_Update_20 1-150700.1.3.1 SUSE-SU-2026:4120-1
SLE Live Patching 15 SP7 kernel-livepatch-SLE15-SP7_Update_21 1-150700.15.3.1 SUSE-SU-2026:4254-1
SUSE Real Time Module 15 SP7 kernel-rt +2 6.4.0-150700.7.75.1 SUSE-SU-2026:4120-1
ReleasePackageFixed inAdvisory
openSUSE Leap 16.0 kernel-default-base 6.12.0-160000.38.1.160000.2.22 openSUSE-SU-2026:21910-1
openSUSE Leap 16.0 kernel-rt +11 6.12.0-160000.38.1 openSUSE-SU-2026:21910-1

Advisories 29

References