Back to CVE records
High 7.7Published May 28, 2026

CVE-2026-46123Bluetooth: virtio_bt: clamp rx length before skb_put

Updated under an hour ago ()

Does this affect you?

It affects Linux and 1 other product. Add what you run to find out whether that includes you.

No exploitation reported and no EPSS estimate yet.

In the Linux kernel, the following vulnerability has been resolved: Bluetooth: virtio_bt: clamp rx length before skb_put virtbt_rx_work() calls skb_put(skb, len) where len comes directly from virtqueue_get_buf() with no validation against the buffer we posted to the device. The RX skb is allocated in virtbt_add_inbuf() and exposed to virtio as exactly 1000 bytes via sg_init_one(). Checking len against skb_tailroom(skb) is not sufficient because alloc_skb() can leave more tailroom than the 1000 bytes actually handed to the device. A malicious or buggy backend can therefore report used.len between 1001 and skb_tailroom(skb), causing skb_put() to include uninitialized kernel heap bytes that were never written by the device. The same path also accepts len == 0, in which case skb_put(skb, 0) leaves the skb empty but virtbt_rx_handle() still reads the pkt_type byte from skb->data, consuming uninitialized memory. Define VIRTBT_RX_BUF_SIZE once and reuse it in alloc_skb() and sg_init_one(), and gate virtbt_rx_work() on that same constant so the bound checked matches the buffer actually exposed to the device. Reject used.len == 0 in the same gate so an empty completion can no longer reach virtbt_rx_handle(). Use bt_dev_err_ratelimited() because the length value comes from an untrusted backend that can otherwise flood the kernel log. Same class of bug as commit c04db81cd028 ("net/9p: Fix buffer overflow in USB transport layer"), which hardened the USB 9p transport against unchecked device-reported length.

CVSS
7.7 HIGH (v3.1, CNA)CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
Weakness (CWE)
Not given
Known exploited
Not in CISA's KEV catalog
EPSS (exploitation in the next 30 days)
Not loaded for this CVE
Assigned by
Linux
NVD analysis
Undergoing Analysis
Record last updated
Aug 5, 2026
First seen by InfoSec Signals
Oct 9, 2026

Affected products

Affected products
Linux Linux
linux:linux (from the name)
from cf2719a21fdb9d4c8e9c834d279163609bef575d before 4236e55b2d9d1ffd3b4bdf8ebbb86e5a0a526b4a; from 160fbcf3bfb93c3c086427f9f4c8bc70f217e9be before fd91fa2678ab603dfb285416c1cf3843d7be1e41; from 160fbcf3bfb93c3c086427f9f4c8bc70f217e9be before ed41c81d30b211a671667259c3b5feeba0e062d5; 160fbcf3bfb93c3c086427f9f4c8bc70f217e9be builds before 6c1730099a6fc18b183bd6c1adad3b54adcaeda9; from 160fbcf3bfb93c3c086427f9f4c8bc70f217e9be before b40cdd1b1370d76e9e760af4490cb4a351cceead; from 160fbcf3bfb93c3c086427f9f4c8bc70f217e9be before e6b4296f170d949ebba937cf6a3f247ec9550d2c; 160fbcf3bfb93c3c086427f9f4c8bc70f217e9be builds before 21bd244b6de5d2fe1063c23acc93fbdd2b20d112; 9b67438e315b925a699f0178f4a48baf3d2d6ef4; and 2 more ranges
CNA record
linux linux_kernel
linux:linux_kernel
from 5.15.78 before 5.15.209; from 6.0.8 before 6.1; from 6.1.1 before 6.1.175; from 6.2 before 6.6.140; from 6.7 before 6.12.88; from 6.13 before 6.18.30; from 6.19 before 7.0.7; 6.1; and 7 more ranges
NVD

References

References

The CVE record is authoritative. Products marked “from the name” were identified from the CNA's free-text names, not a CPE, and are matched less certainly. This product uses the NVD API but is not endorsed or certified by the NVD.

Your cookie choices
We use essential cookies to run this site, and, only with your consent, an advertising cookie from Google to measure whether our ads lead to sign-ups and subscriptions. See our for details.