Skip to main content
VulnerabilityPublished Updated

CVE-2026-31771: Linux kernel · Out-of-bounds Read

Source GCVE Database

0
Compare
Authoritative record:CVE-2026-31771· High 8.1

Not known to be exploited · CVSS 8.1 High · fixed in fbea63d0d301edd4a42f4390b49b8519d78b802d : patch Linux kernel soon.

Data as of 30 Oct 2026, 16:33 UTC

CVSS 3.1 base score
8.1High
How severe the flaw is on the 0–10 CVSS scale.

Thin evidence

One scorer or none
CVSS scores by source
CNA (Linux)CVSS 3.18.1
Patch
Available – fixed in fbea63d0d301edd4a42f4390b49b8519d78b802d, dbc8b8d33c9e19e17e8b8b1361bbb46e2983f5f2, ac7889b0fe441e4ef892c40b1d002e91f93fa4ae +3
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H

Exploitation evidence

  1. Disclosed: evidence found.

    CVE published 1 May 2026

  2. Detectable: no evidence on record.

    No public nuclei template indexed

  3. Weaponized: no evidence on record.

    No public exploit code indexed in Metasploit or Exploit-DB

  4. Exploited in the wild: no evidence on record.

    Not in CISA KEV and no source reports exploitation

  5. Observed by OffSeq Mirage: no evidence on record.

    No attack traffic recorded by OffSeq Mirage sensors

A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 30 Oct 2026.

What to do

Upgrade to a fixed release listed under Affected software.

Affected software

ProductAffectedFixed in
LinuxLinuxAffected
  • ≥ 2f20216c1d6fe17c1a224f658be0dc6fab2269c7, < fbea63d0d301edd4a42f4390b49b8519d78b802d
Fixed in
  • fbea63d0d301edd4a42f4390b49b8519d78b802d
LinuxLinuxAffected
  • ≥ 2f20216c1d6fe17c1a224f658be0dc6fab2269c7, < dbc8b8d33c9e19e17e8b8b1361bbb46e2983f5f2
Fixed in
  • dbc8b8d33c9e19e17e8b8b1361bbb46e2983f5f2
LinuxLinuxAffected
  • ≥ 2f20216c1d6fe17c1a224f658be0dc6fab2269c7, < ac7889b0fe441e4ef892c40b1d002e91f93fa4ae
Fixed in
  • ac7889b0fe441e4ef892c40b1d002e91f93fa4ae
LinuxLinuxAffected
  • ≥ 2f20216c1d6fe17c1a224f658be0dc6fab2269c7, < 86c8d07a64d553c41e213b52650020010f9ef23e
Fixed in
  • 86c8d07a64d553c41e213b52650020010f9ef23e
LinuxLinuxAffected
  • ≥ 2f20216c1d6fe17c1a224f658be0dc6fab2269c7, < 2b2bf47cd75518c36fa2d41380e4a40641cc89cd
Fixed in
  • 2b2bf47cd75518c36fa2d41380e4a40641cc89cd
LinuxLinuxAffected
  • ≥ 2f20216c1d6fe17c1a224f658be0dc6fab2269c7, < 1e4b738dd0d0f7b237686167706badad9d30649c
Fixed in
  • 1e4b738dd0d0f7b237686167706badad9d30649c

Description

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

References

Community reviews

Loading reviews…