Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

CVE-2026-46186

Gravedad CVSS v3.1:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
28/05/2026
Última modificación:
11/06/2026

Descripción

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

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.15.78 (incluyendo) 5.15.209 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.0.8 (incluyendo) 6.1 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.1.1 (incluyendo) 6.1.175 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.2 (incluyendo) 6.6.140 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.7 (incluyendo) 6.12.88 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.13 (incluyendo) 6.18.30 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.19 (incluyendo) 7.0.7 (excluyendo)
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:*:*:*:*:*:*