CVE-2026-64403CWE-125CWE-476

CVE-2026-64403

High · published July 25, 2026

CVSS v3.1
7.1
EPSS
0%
Percentile
17.4
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

Bluetooth: L2CAP: validate option length before reading conf opt value

l2cap_get_conf_opt() derives the option length from the

attacker-controlled opt->len field and immediately dereferences

opt->val (as u8, get_unaligned_le16() or get_unaligned_le32(), or a

raw pointer for the default case) before any caller has confirmed

that opt->len bytes are present in the buffer. The callers

(l2cap_parse_conf_req(), l2cap_parse_conf_rsp() and

l2cap_conf_rfc_get()) only detect a malformed option afterwards, once

the running length has gone negative, by which point the

out-of-bounds read has already executed.

An existing post-hoc length check keeps the garbage value from being

consumed, so this is not a data leak in the current control flow. It

is still a validate-after-use ordering bug: up to 4 bytes are read

past the end of the buffer before it is known to contain them, and it

is fragile to future changes in the callers.

Fix it at the source. Pass the end of the buffer into

l2cap_get_conf_opt() and refuse to touch opt->val unless the full

option (header + value) fits. Each caller computes an end pointer

once before the loop and checks the return value directly instead of

inferring the error from a negative length.

The record
Technical detail
CVSS v3.1
7.1 · HIGH
Vector
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.00265 · 17.4th percentile
Weaknesses
CWE-125 · Out-of-bounds Read; CWE-476 · NULL Pointer Dereference
Published
2026-07-25T14:17Z
Affected products (15)
ProductVersionsFixed in
linux/linux_kernel≥ 3.16.66, < 3.173.17
linux/linux_kernel≥ 3.18.138, < 3.193.19
linux/linux_kernel≥ 4.4.178, < 4.54.5
linux/linux_kernel≥ 4.9.167, < 4.104.10
linux/linux_kernel≥ 4.14.110, < 4.154.15
linux/linux_kernel≥ 4.19.33, < 4.204.20
linux/linux_kernel≥ 5.0.6, < 5.10.2615.10.261
linux/linux_kernel≥ 5.11, < 5.15.2125.15.212
linux/linux_kernel≥ 5.16, < 6.1.1786.1.178
linux/linux_kernel≥ 6.2, < 6.6.1456.6.145
linux/linux_kernel≥ 6.7, < 6.12.966.12.96
linux/linux_kernel≥ 6.13, < 6.18.396.18.39
linux/linux_kernel≥ 6.19, < 7.1.47.1.4
linux/linux_kernelall versions—
linux/linux_kernelall versions—
References (8)
EPSS history
Timeline
  • 25 JUL 08:50Z
    Bluetooth: L2CAP: validate option length before reading conf opt value
    cvelistv5