GHSA-qxc2-9rg4-2rgv · Severity: high — In the Linux kernel, the following vulnerability has been resolved: Bluetooth: virtio_bt: clamp...
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.
Conclusion & alert: CVE-2026-46123 is rated Low Risk (32.3/100): CVSS High severity, with low exploitation likelihood (EPSS 0.14%). Mandatory action: Monitor for updates and reassess as exploit intelligence or EPSS changes.
Risk is dynamic; we continuously reassess and refresh what is shown on this page as upstream context changes.
EPSS lead: Daily EPSS estimates relative likelihood of exploitation; percentile ranks this CVE among scored vulnerabilities (higher = more severe relative rank).
| # | Date | Old EPSS score | New EPSS score | Delta (New - Old) |
|---|---|---|---|---|
| 1 | 2026-06-15 | 0.02% | 0.14% | +0.13% |
| 2 | 2026-05-28 | — | 0.02% | — |
Full EPSS history (2 records total)
CVSS metrics for this CVE.
| Base score | Version | Severity | Vector | Exploitability | Impact | Score source |
|---|---|---|---|---|---|---|
| 7.7 | 3.1 | HIGH |
|
2.5 | 5.2 | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
GHSA-qxc2-9rg4-2rgv · Severity: high — In the Linux kernel, the following vulnerability has been resolved: Bluetooth: virtio_bt: clamp...
| vendor | priority | summary | link |
|---|---|---|---|
debian
|
unimportant | CVE-2026-46123 unimportant priority: Debian including 2 source packages (linux, linux-6.1), 6 status rows across 5 suites (bookworm, bullseye, forky, sid, trixie): resolved 6. | https://security-tracker.debian.org/tracker/CVE-2026-46123 |
redhat
|
medium | — | https://access.redhat.com/security/cve/CVE-2026-46123 |
suse
|
high | CVE-2026-46123 severity important: SUSE including 24 source package names (cluster-md-kmp-default, dlm-kmp-default, …), 111 product×package rows across 27 product lines (SUSE Linux Enterprise High Availability Extension 15 SP7, SUSE Linux Enterprise Live Patching 12 SP5, … (27 product lines)): Known Not Affected 107, Fixed 4. | https://www.suse.com/security/cve/CVE-2026-46123/ |
ubuntu
|
medium | CVE-2026-46123 medium priority: Ubuntu including 158 source packages (linux, linux-allwinner-5.19, …), 1422 status rows across 9 suites (bionic, focal, jammy, noble, questing, resolute, trusty, upstream, xenial): DNE 1024, ignored 169, needed 100, released 84, not-affected 45. | https://ubuntu.com/security/CVE-2026-46123 |
| Vendor | Product | Version | Raw CPE |
|---|---|---|---|
| linux | linux_kernel | >= 5.15.78, < 5.15.209 | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| linux | linux_kernel | >= 6.0.8, < 6.1 | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| linux | linux_kernel | >= 6.1.1, < 6.1.175 | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| linux | linux_kernel | >= 6.2, < 6.6.140 | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| linux | linux_kernel | >= 6.7, < 6.12.88 | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| linux | linux_kernel | >= 6.13, < 6.18.30 | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| linux | linux_kernel | >= 6.19, < 7.0.7 | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| linux | linux_kernel | 6.1 | cpe:2.3:o:linux:linux_kernel:6.1:-:*:*:*:*:*:* |
| linux | linux_kernel | 6.1 | cpe:2.3:o:linux:linux_kernel:6.1:rc4:*:*:*:*:*:* |
| linux | linux_kernel | 6.1 | cpe:2.3:o:linux:linux_kernel:6.1:rc5:*:*:*:*:*:* |
| linux | linux_kernel | 6.1 | cpe:2.3:o:linux:linux_kernel:6.1:rc6:*:*:*:*:*:* |
| linux | linux_kernel | 6.1 | cpe:2.3:o:linux:linux_kernel:6.1:rc7:*:*:*:*:*:* |
| linux | linux_kernel | 6.1 | cpe:2.3:o:linux:linux_kernel:6.1:rc8:*:*:*:*:*:* |
| linux | linux_kernel | 7.1 | cpe:2.3:o:linux:linux_kernel:7.1:rc1:*:*:*:*:*:* |
| linux | linux_kernel | 7.1 | cpe:2.3:o:linux:linux_kernel:7.1:rc2:*:*:*:*:*:* |