CVE-2026-31771: Bluetooth: hci_event: move wake reason storage into validated event handlers
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().
Security readout for executives and security teams
Plain-English summary
A short, malformed Bluetooth HCI event can be processed before Linux verifies that the event contains enough data. This may cause an out-of-bounds memory read, potentially exposing sensitive kernel memory or crashing the system. The supplied CVSS score is 8.1, reflecting adjacent access, no privileges, and no user interaction.
Executive priority
Treat as high priority for Bluetooth-enabled laptops, mobile platforms, embedded systems, and nearby-accessible infrastructure. Accelerate vendor-backed kernel updates where exposure exists. Systems without usable Bluetooth have lower likely exposure, but teams should verify rather than assume that status.
Technical view
Linux called hci_store_wake_reason() after removing the HCI event header but before enforcing event-specific minimum payload lengths. A truncated event could therefore reach bacpy() without a bounds check. The fix moves wake-address storage into event handlers after validation and explicitly requires the HCI device lock.
Likely exposure
Exposure is most relevant to Linux systems using Bluetooth where attacker-influenced or malformed HCI events can reach the host stack. The CVSS vector classifies access as adjacent. The supplied version listing is ambiguous, so exact distribution-kernel exposure cannot be determined from version numbers alone.
Exploitation context
The supplied record does not report known active exploitation and states that the CVE is not in KEV. No public exploit evidence is included. Practical reachability depends on how a system's Bluetooth controller and host stack receive HCI events; ordinary network reachability alone is not evidence of exposure.
Researcher notes
The unsafe ordering is the key issue: wake-reason parsing preceded per-event length validation. The patch relocates address storage into nine validated handlers, preserves the NULL-address fallback, and adds an explicit lock contract. The supplied version data does not clearly map stable releases to fixed status; commit-level backport verification is preferable.
Mitigation direction
Apply a vendor kernel update incorporating either referenced stable fix commit.
Check distribution security guidance for exact fixed package versions.
Prioritize updates on Bluetooth-enabled endpoints exposed to nearby untrusted devices.
Use vendor-supported compensating controls if an updated kernel is unavailable.
Validation and detection
Inventory running kernel versions and identify systems with active Bluetooth hardware or services.
Check vendor package changelogs for either referenced stable fix commit.
Confirm the updated kernel is running after installation and reboot.
Reassess Bluetooth exposure where exact backport status cannot be established.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2026-31771 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
1CVSS vectors
3Timeline events
0ADP providers
3Source links
CVSS vector scores
1 official score
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.