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

Bluetooth: hci_sock: validate event length before filtering

is_filtered_packet() reads the event code from skb->data[0] without first
checking that the skb is nonempty. When an opcode filter is configured,
it also reads the command opcode at offsets 3 or 4 without checking that
a Command Complete or Command Status event is long enough.

hci_send_to_sock() invokes the filter before hci_event_packet() validates
the event header. A malformed event supplied by a controller or a vhci
device can therefore cause an out-of-bounds read.

Keep the unmasked event code for the opcode checks. The masked value is
needed for the 64-bit event bitmap, but using it to identify command events
aliases event codes above 0x3f. In particular, Synchronous Train Complete
(0x4f) was treated as Command Status (0x0f) even though its payload has no
opcode.

Reject actual command events that are too short for the field being
inspected. A truncated command event cannot match a configured opcode.
Published: 2026-10-18
Score: n/a
EPSS: < 1% Very Low
KEV: No
Impact: Out-of-Bounds Read
Action: Apply Patch
AI Analysis

Impact

In the Linux kernel’s Bluetooth subsystem, the hci_sock module processes incoming event packets without verifying that the packet data buffer contains any bytes before reading the event code. When an opcode filter is active, the code also reads command opcodes at offsets 3 or 4 without confirming that a Command Complete or Command Status event is sufficiently long. If a malformed event is supplied by a Bluetooth controller or a virtual device, the kernel performs an out‑of‑bounds read, potentially leaking kernel memory and sensitive information. The issue was resolved by adding checks that reject packets too short for the fields being inspected, ensuring only valid data is processed.

Affected Systems

All Linux kernel builds that include the default hci_sock Bluetooth driver are impacted, including all mainstream distributions that ship the bundled kernel source prior to the fix. Because no explicit version range is provided, any kernel that implements the old logic and has not been patched is potentially vulnerable. This applies to systems that communicate with external Bluetooth controllers or virtual devices using the standard HCI socket interface.

Risk and Exploitability

The CVSS score is not published, and no EPSS or KEV entry is available, making it difficult to quantify the risk precisely. However, the flaw allows an out-of-bounds read that could expose kernel memory to a local or remote attacker who can generate or spoof malformed Bluetooth events. The likelihood of exploitation depends on the attacker’s ability to control the Bluetooth controller or to target a system that has a vulnerable kernel connected to a rogue Bluetooth device. Because the kernel reads directly from a user-controlled packet without bounds checking, the vulnerability could be exploited by readily available tools that can send crafted Bluetooth HCI events. If not mitigated, this could lead to information disclosure or pave the way for further privilege escalation.

Generated by OpenCVE AI on October 18, 2026 at 16:45 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Update the Linux kernel to a release that includes the patch for the hci_sock event length validation bug
  • If a firmware update for the Bluetooth controller is available, install it to prevent malformed packets from the controller side
  • Disable the Bluetooth subsystem or block HCI sockets on systems that do not require Bluetooth functionality until a patched kernel version is deployed

Generated by OpenCVE AI on October 18, 2026 at 16:45 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sun, 18 Oct 2026 15:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: Bluetooth: hci_sock: validate event length before filtering is_filtered_packet() reads the event code from skb->data[0] without first checking that the skb is nonempty. When an opcode filter is configured, it also reads the command opcode at offsets 3 or 4 without checking that a Command Complete or Command Status event is long enough. hci_send_to_sock() invokes the filter before hci_event_packet() validates the event header. A malformed event supplied by a controller or a vhci device can therefore cause an out-of-bounds read. Keep the unmasked event code for the opcode checks. The masked value is needed for the 64-bit event bitmap, but using it to identify command events aliases event codes above 0x3f. In particular, Synchronous Train Complete (0x4f) was treated as Command Status (0x0f) even though its payload has no opcode. Reject actual command events that are too short for the field being inspected. A truncated command event cannot match a configured opcode.
Title Bluetooth: hci_sock: validate event length before filtering
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-19T09:19:58.505Z

Reserved: 2026-09-25T10:25:14.350Z

Link: CVE-2026-98461

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-18T16:16:56.543

Modified: 2026-10-19T10:18:55.667

Link: CVE-2026-98461

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-18T17:00:09Z

Weaknesses

No weakness.