CVE-2026-46186
Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
28/05/2026
Última modificación:
28/05/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->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)->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->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->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.
Impacto
Referencias a soluciones, herramientas e información
- https://git.kernel.org/stable/c/1e1e509b6fd2a42421745bbcd98bd16daad20904
- https://git.kernel.org/stable/c/2c1143564c71e7497b42d8360a8379ccbb011d3c
- https://git.kernel.org/stable/c/3485c7236c59c8c34a41af1c4b52982437554e79
- https://git.kernel.org/stable/c/daf23014e5d975e72ea9c02b5160d3fcf070ea47
- https://git.kernel.org/stable/c/f743eab6486965f276c7e3f1700895f014fdc6db



