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

Bluetooth: virtio_bt: validate rx pkt_type header length

virtbt_rx_handle() reads the leading pkt_type byte from the RX skb
and forwards the remainder to hci_recv_frame() for every
event/ACL/SCO/ISO type, without checking that the remaining payload
is at least the fixed HCI header for that type.

After the preceding patch bounds the backend-supplied used.len to
[1, VIRTBT_RX_BUF_SIZE], a one-byte completion still reaches
hci_recv_frame() with skb->len already pulled to 0. If the byte
happened to be HCI_ACLDATA_PKT, the ACL-vs-ISO classification
fast-path in hci_dev_classify_pkt_type() dereferences
hci_acl_hdr(skb)->handle whenever the HCI device has an active
CIS_LINK, BIS_LINK, or PA_LINK connection, reading two bytes of
uninitialized RX-buffer data. The same hazard exists for every
packet type the driver accepts because none of the switch cases in
virtbt_rx_handle() check skb->len against the per-type minimum HCI
header size before handing the frame to the core.

After stripping pkt_type, require skb->len to cover the fixed
header size for the selected type (event 2, ACL 4, SCO 3, ISO 4)
before calling hci_recv_frame(); drop ratelimited otherwise.
Unknown pkt_type values still take the original kfree_skb() default
path.

Use bt_dev_err_ratelimited() because both the length and pkt_type
values come from an untrusted backend that can otherwise flood the
kernel log.
Published: 2026-05-28
Score: 5.5 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The driver for the virtio Bluetooth backend fails to validate the length of incoming packets before passing them to the core HCI handling routine. The missing check allows an attacker to send a packet that contains only the type byte and no header data. When the kernel interprets this data, it may read uninitialized bytes from the buffer, resulting in an out‑of‑bounds read and potential kernel log flooding. The flaw does not directly provide code execution, but it can lead to denial of service or inadvertent disclosure of kernel memory contents.

Affected Systems

Affected systems are Linux kernels that load the virtio_bt module to support Bluetooth over a VirtIO backend. All kernel versions released before the patch that introduced length validation are vulnerable; specific release numbers are not listed in the advisory. Users employing virtualized environments with Bluetooth passthrough via VirtIO should review whether the driver is present.

Risk and Exploitability

The CVSS score for this vulnerability is 5.5, indicating a medium severity, while the EPSS score is less than 1%, implying a low probability of exploitation in practice. No KEV listing is available for this vulnerability. The attack likely requires control of the VirtIO backend or the ability to inject crafted packets into the Bluetooth device queue. If such an interface can be reached by an attacker—such as a guest VM or an untrusted host device—the opportunity exists to trigger the out‑of‑bounds read by transmitting an undersized packet. Because the kernel logs the error via a ratelimited mechanism, repeated exploitation could still degrade system availability through excessive logging or subtle memory corruption.

Generated by OpenCVE AI on June 11, 2026 at 04:23 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a version that contains the virtio_bt packet length check patch.
  • If an immediate kernel upgrade is not feasible, restrict the VirtIO backend that provides Bluetooth traffic so that only trusted sources can inject packets; disabling the virtio_bt driver entirely in environments where Bluetooth passthrough is unnecessary.
  • Monitor dmesg or /var/log/kern.log for frequent bt_dev_err_ratelimited() messages, which may indicate attempted exploitation, and investigate any related traffic.

Generated by OpenCVE AI on June 11, 2026 at 04:23 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 11 Jun 2026 03:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-908
CPEs cpe:2.3:o:linux:linux_kernel:6.1:-:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.1:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.1:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.1:rc6:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.1:rc7:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.1:rc8:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.1:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.1:rc2:*:*:*:*:*:*
Metrics cvssV3_1

{'score': 7.0, 'vector': 'CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H'}

cvssV3_1

{'score': 5.5, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H'}


Mon, 01 Jun 2026 17:00:00 +0000


Fri, 29 May 2026 03:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-119

Fri, 29 May 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-805
References
Metrics threat_severity

None

cvssV3_1

{'score': 7.0, 'vector': 'CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H'}

threat_severity

Moderate


Thu, 28 May 2026 12:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-119

Thu, 28 May 2026 10:15:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: Bluetooth: virtio_bt: validate rx pkt_type header length virtbt_rx_handle() reads the leading pkt_type byte from the RX skb and forwards the remainder to hci_recv_frame() for every event/ACL/SCO/ISO type, without checking that the remaining payload is at least the fixed HCI header for that type. After the preceding patch bounds the backend-supplied used.len to [1, VIRTBT_RX_BUF_SIZE], a one-byte completion still reaches hci_recv_frame() with skb->len already pulled to 0. If the byte happened to be HCI_ACLDATA_PKT, the ACL-vs-ISO classification fast-path in hci_dev_classify_pkt_type() dereferences hci_acl_hdr(skb)->handle whenever the HCI device has an active CIS_LINK, BIS_LINK, or PA_LINK connection, reading two bytes of uninitialized RX-buffer data. The same hazard exists for every packet type the driver accepts because none of the switch cases in virtbt_rx_handle() check skb->len against the per-type minimum HCI header size before handing the frame to the core. After stripping pkt_type, require skb->len to cover the fixed header size for the selected type (event 2, ACL 4, SCO 3, ISO 4) before calling hci_recv_frame(); drop ratelimited otherwise. Unknown pkt_type values still take the original kfree_skb() default path. Use bt_dev_err_ratelimited() because both the length and pkt_type values come from an untrusted backend that can otherwise flood the kernel log.
Title Bluetooth: virtio_bt: validate rx pkt_type header length
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-06-14T18:01:09.675Z

Reserved: 2026-05-13T15:03:33.103Z

Link: CVE-2026-46186

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Analyzed

Published: 2026-05-28T10:16:34.223

Modified: 2026-06-11T03:06:40.877

Link: CVE-2026-46186

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-05-28T00:00:00Z

Links: CVE-2026-46186 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-06-11T04:30:04Z

Weaknesses
  • CWE-805

    Buffer Access with Incorrect Length Value

  • CWE-908

    Use of Uninitialized Resource