Track vulnerabilities like this one.
Sign up free to get alerted when software you use is affected.
Linux kernel up to 6.6.159.1‑1 can crash via Bluetooth
published 17 days ago
Summary
Older Linux kernel versions may read beyond the end of a Bluetooth message, which can cause the system to freeze or crash. This happens when a malformed Bluetooth event is processed without checking its length first. Update the kernel to version 6.6.159.1‑1 or later, or apply the available security patch, to stop the problem.
What to do
- Update kernel to version 6.6.159.1-1.
Affected software
| Ecosystem | Vendor | Product | Affected versions |
|---|---|---|---|
| Azure Linux:3 | – | kernel |
< 6.6.159.1-1 Fix: upgrade to 6.6.159.1-1
|
| Azure Linux:3 | azure | kernel | <= 6.6.157.1-1 |
Original advisory text
CVE-2026-98461 affecting package kernel for versions less than 6.6.159.1-1
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.
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.
References
Timeline
Published18 Oct 2026
Updated2 Nov 2026
First seen21 Oct 2026
Sources
AZL-109364 · OSV
Track software like this
Free during beta