Skip to main content
Meet us at Black Hat USA 2026— Las Vegas, August 1–6Book a Meeting
Mallory
High

Linux kernel virtio_bt RX length validation flaw

IdentifiersCVE-2026-46123CWE-125

CVE-2026-46123 is a Linux kernel vulnerability in the Bluetooth virtio_bt driver, fixed under the change titled "Bluetooth: virtio_bt: clamp rx length before skb_put." In the vulnerable path, virtbt_rx_work() passes a device-reported length from virtqueue_get_buf() directly to skb_put(skb, len) without validating that len matches the size of the RX buffer actually exposed to the virtio backend. The RX skb is allocated in virtbt_add_inbuf() and only 1000 bytes are shared with the device via sg_init_one(), but alloc_skb() may leave more tailroom than that. As a result, a malicious or buggy virtio backend can report used.len greater than 1000 but still within skb_tailroom(skb), causing skb_put() to extend the skb over bytes never written by the device and thereby include uninitialized kernel heap memory. The same code path also accepted used.len == 0; in that 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. The fix introduces a shared VIRTBT_RX_BUF_SIZE constant used consistently for allocation and scatter-gather exposure, rejects zero-length completions, and bounds RX processing to the actual exposed buffer size.

Share:
For your environment

Are you exposed to this one?

Mallory correlates every CVE against your assets, your vendors, and active adversary campaigns. Know which vulnerabilities matter for you, not just which ones are loud.

ANALYST BRIEF

Impact, mitigation & remediation

What it means. What to do now. Patch path, mitigations, and the assume-compromise checklist.

Impact

What an attacker gets, and what they’ve been doing with it.

Successful exploitation can cause disclosure of uninitialized kernel heap memory through skb contents and trigger uninitialized memory reads in the kernel on zero-length completions. The primary security consequence described in the provided content is information exposure from kernel memory that was never written by the device but becomes part of the skb due to the unchecked reported length. The flaw also creates undefined or unsafe kernel behavior when virtbt_rx_handle() reads pkt_type from an empty skb. The provided scoring context rates the issue as Important severity, with CVSS v3.1 7.7, reflecting high confidentiality impact and high availability impact in local attack conditions involving a malicious or compromised backend.

Mitigation

If you can’t patch tonight, do this now.

If immediate patching is not possible, reduce exposure by disabling or avoiding the virtio_bt driver and not using untrusted, unnecessary, or externally influenced virtio Bluetooth backends. This is particularly relevant in virtualized environments where the backend may be malicious, buggy, or less trusted than the guest kernel. Limiting deployment of virtio Bluetooth devices and avoiding such configurations in sensitive environments can reduce exploitability until fixed kernels are installed.

Remediation

Patch, then assume compromise.

Upgrade to a Linux kernel release containing the upstream fix for CVE-2026-46123. The fix defines and reuses a single VIRTBT_RX_BUF_SIZE constant in both alloc_skb() and sg_init_one(), validates used.len against that exact exposed buffer size before calling skb_put(), and rejects used.len == 0 so empty completions cannot reach virtbt_rx_handle(). Apply vendor-distributed kernel updates where available; the provided content specifically notes SUSE advisories and backports for multiple SLE, SLE Micro, Manager, and openSUSE product lines.
PUBLIC EXPLOITS

Exploits

No public exploits tracked yet. Mallory keeps watching.

VALID 0 / 0 TOTALView more in app

No public exploit code observed for this vulnerability.

EXPOSURE SURFACE

Affected products & vendors

Products and vendors Mallory has correlated with this vulnerability. Open in Mallory to drill down to specific CPE configurations and version ranges.

VendorProductType
LinuxLinux Kerneloperating_system

Vendor-confirmed product mapping. Mallory continuously reconciles this list against your asset inventory.

What this page doesn’t show

The version that knows your environment.

This page is what’s public. Mallory adds the parts that aren’t: which of your assets are affected, which adversaries are exploiting it right now, which detections to deploy, and what to do tonight.
Exposure mapping

Query your assets running an affected version, and investigate the blast radius.

Threat actor evidence

Every observed campaign linking this CVE to a named adversary.

Associated malware

Malware families riding this exploit, with evidence and IOCs.

Detection signatures

YARA, Sigma, Snort, and vendor rules, auto-deployed to your SIEM.

Vendor-by-vendor mapping

Cross-references every affected SKU, including bundled OEM variants.

Social activity

Community discussion across Reddit, Mastodon, and other social sources.