CVE-2026-31771 json
Bluetooth: hci_event: move wake reason storage into validated event handlers
published 2026-05-01 6 mo ago modified 2026-10-30 9 d ago also EUVD-2026-26584
- cvss
- 8.1
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.3%
- EPSS 0.3% chance of exploitation in 30 days, percentile 25%
- public exploits
- 0
- none known
Summary
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: hci_event: move wake reason storage into validated event handlers
hci_store_wake_reason() is called from hci_event_packet() immediately after stripping the HCI event header but before hci_event_func() enforces the per-event minimum payload length from hci_ev_table. This means a short HCI event frame can reach bacpy() before any bounds check runs.
Rather than duplicating skb parsing and per-event length checks inside hci_store_wake_reason(), move wake-address storage into the individual event handlers after their existing event-length validation has succeeded. Convert hci_store_wake_reason() into a small helper that only stores an already-validated bdaddr while the caller holds hci_dev_lock(). Use the same helper after hci_event_func() with a NULL address to preserve the existing unexpected-wake fallback semantics when no validated event handler records a wake address.
Annotate the helper with __must_hold(&hdev->lock) and add lockdep_assert_held(&hdev->lock) so future call paths keep the lock contract explicit.
Call the helper from hci_conn_request_evt(), hci_conn_complete_evt(), hci_sync_conn_complete_evt(), le_conn_complete_evt(), hci_le_adv_report_evt(), hci_le_ext_adv_report_evt(), hci_le_direct_adv_report_evt(), hci_le_pa_sync_established_evt(), and hci_le_past_received_evt().
Patch / fix
- Linux Linux 6.1.191, 6.6.160, 6.12.114, 6.18.57, 6.19.12, 7.0
- linux Debian 13 6.12.115-2
- linux Debian 14 6.19.12-1
debian advisories DEBIAN-CVE-2026-31771
- linux-nvidia Ubuntu 26.04 LTS 7.0.0-1006.6
- linux-nvidia-tegra Ubuntu 24.04 LTS 6.8.0-1035.38
ubuntu advisories UBUNTU-CVE-2026-31771
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- kernel-syms SLES 16.0, Linux Micro Extras 6.2, SLES for SAP applications 16.0 6.12.0-160000.36.1
- kernel-obs-build Linux Micro Extras 6.2 6.12.0-160000.36.1
- kernel-rt Linux Micro 6.2 6.12.0-160000.36.1
- kernel-64kb SLES 16.0, Linux Micro 6.2, SLES for SAP applications 16.0 6.12.0-160000.36.1
- kernel-source SLES 16.0, Linux Micro 6.2, SLES for SAP applications 16.0 6.12.0-160000.36.1
- kernel-default SLES 16.0, SLE High Availability Extension 16.0, Linux Micro 6.2 +1 more 6.12.0-160000.36.1
- kernel-default-base SLES 16.0, Linux Micro 6.2, SLES for SAP applications 16.0 6.12.0-160000.36.1.160000.2.17
- kernel-azure SLES for SAP applications 16.0, SLES 16.0 6.12.0-160000.36.1
suse advisories SUSE-SU-2026:22742-1SUSE-SU-2026:22769-1SUSE-SU-2026:22835-1SUSE-SU-2026:22812-1SUSE-SU-2026:3089-1SUSE-SU-2026:3044-1
- kernel-rt openSUSE Leap 16.0 6.12.0-160000.36.1
- dtb-aarch64 openSUSE Leap 16.0 6.12.0-160000.36.1
- kernel-64kb openSUSE Leap 16.0 6.12.0-160000.36.1
- kernel-syms openSUSE Leap 16.0 6.12.0-160000.36.1
- kernel-azure openSUSE Leap 16.0 6.12.0-160000.36.1
- kernel-obs-qa openSUSE Leap 16.0 6.12.0-160000.36.1
- kernel-source openSUSE Leap 16.0 6.12.0-160000.36.1
- kernel-default openSUSE Leap 16.0 6.12.0-160000.36.1
opensuse advisories openSUSE-SU-2026:21388-1
- git.kernel.org/stable/c/fbea63d0d301edd4a42f4390b49b8519d78b802d commit
- git.kernel.org/stable/c/1e4b738dd0d0f7b237686167706badad9d30649c commit
- git.kernel.org/stable/c/ac7889b0fe441e4ef892c40b1d002e91f93fa4ae commit
- git.kernel.org/stable/c/dbc8b8d33c9e19e17e8b8b1361bbb46e2983f5f2 commit
- git.kernel.org/stable/c/86c8d07a64d553c41e213b52650020010f9ef23e commit
- git.kernel.org/stable/c/2b2bf47cd75518c36fa2d41380e4a40641cc89cd commit
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-31771 updated cvss 5.5
kernel: Bluetooth: hci_event: move wake reason storage into validated event handlers
-
Red Hat Enterprise Linux 6 perf, kernel, python-perf, kernel-kdump, kernel-firmware, kernel-bootwrapper, +1 moreaffected: workaround, no fix planned “To mitigate this issue, prevent the bluetooth module from being loaded. See https://access.redhat.com/solutions/41278 for instructions.”
-
Red Hat Enterprise Linux 8 perf, kernel, bpftool, kernel-rt, kernel-core, kernel-tools, +29 more Red Hat Enterprise Linux 9 rv, perf, rtla, kernel, bpftool, libperf, +83 more Red Hat Enterprise Linux 10 kernelaffected: workaround, no fix available “To mitigate this issue, prevent the bluetooth module from being loaded. See https://access.redhat.com/solutions/41278 for instructions.”
-
Red Hat Enterprise Linux 7 perf, kernel, bpftool, kernel-rt, python-perf, kernel-kdump, +8 morenot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 23 d ago
Exploit prediction
0.32% chance of exploitation in the next 30 days, higher than 25% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 8.1 | CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H |
Affected products
- Linux Linux
Classification
- Weakness
-
- CWE-125 Out-of-bounds Read
- Technology feeds
References
- git.kernel.org /stable/c/fbea63d0d301edd4a42f4390b49b8519d78b802d
- git.kernel.org /stable/c/1e4b738dd0d0f7b237686167706badad9d30649c
- git.kernel.org /stable/c/ac7889b0fe441e4ef892c40b1d002e91f93fa4ae
- git.kernel.org /stable/c/dbc8b8d33c9e19e17e8b8b1361bbb46e2983f5f2
-
git.kernel.org
/stable/c/86c8d07a64d553c41e213b52650020010f9ef23e
patch
-
git.kernel.org
/stable/c/2b2bf47cd75518c36fa2d41380e4a40641cc89cd
patch
Sources
- CVE List CVE-2026-31771
- NVD CVE-2026-31771
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.