Skip to content
Fencer Vulns
no cvss —

CVE-2026-64457 json

virtio_pci: fix vq info pointer lookup via wrong index

published 2026-07-25 3 mo ago modified 2026-11-03 5 d ago also EUVD-2026-48801

cvss
—
not scored
cisa kev
Not listed
not in CISA's catalog
epss
0.2%
EPSS 0.2% chance of exploitation in 30 days, percentile 7%
public exploits
0
none known

Summary

In the Linux kernel, the following vulnerability has been resolved:

virtio_pci: fix vq info pointer lookup via wrong index

Unbinding a virtio balloon device:

echo virtio0 > /sys/bus/virtio/drivers/virtio_balloon/unbind

triggers a NULL pointer dereference. The dmesg says:

BUG: kernel NULL pointer dereference, address: 0000000000000008 [...] RIP: 0010:__list_del_entry_valid_or_report+0x5/0xf0 Call Trace: <TASK> vp_del_vqs+0x121/0x230 remove_common+0x135/0x150 virtballoon_remove+0xee/0x100 virtio_dev_remove+0x3b/0x80 device_release_driver_internal+0x187/0x2c0 unbind_store+0xb9/0xe0 kernfs_fop_write_iter.llvm.11660790530567441834+0xf6/0x180 vfs_write+0x2a9/0x3b0 ksys_write+0x5c/0xd0 do_syscall_64+0x54/0x230 entry_SYSCALL_64_after_hwframe+0x29/0x31 [...] </TASK>

The virtio_balloon device registers 5 queues (inflate, deflate, stats, free_page, reporting) but only the first two are unconditional. The stats, free_page and reporting queues are each conditional on their respective feature bits. When any of these features are absent, the corresponding vqs_info entry has name == NULL, creating holes in the array.

The root cause is an indexing mismatch introduced when vq info storage was changed to be passed as an argument. vp_find_vqs_msix() and vp_find_vqs_intx() store the info pointer at vp_dev->vqs[i], where 'i' is the caller's sparse array index. However, the virtqueue itself gets vq->index assigned from queue_idx, a dense index that skips NULL entries. When holes exist, 'i' and queue_idx diverge. Later, vp_del_vqs() looks up info via vp_dev->vqs[vq->index] using the dense index into the sparsely-populated array, and hits NULL.

Fix this by storing info at vp_dev->vqs[queue_idx] instead of vp_dev->vqs[i], so the store index matches the lookup index (vq->index). Apply the fix to both the MSIX and INTX paths.

Patch / fix

  • Linux Linux 6.12.96, 6.18.39, 7.1.4, 7.2
  • linux Debian 13 6.12.96-1
  • linux Debian 14 7.1.4-1
  • linux-6.12 Debian 12 6.12.100-1~deb12u1

debian advisories DEBIAN-CVE-2026-64457

  • linux Ubuntu 26.04 LTS 7.0.0-31.31
  • linux-aws Ubuntu 26.04 LTS 7.0.0-1012.12
  • linux-gcp Ubuntu 26.04 LTS 7.0.0-1011.11
  • linux-gke Ubuntu 26.04 LTS 7.0.0-1006.7
  • linux-ibm Ubuntu 26.04 LTS 7.0.0-1013.13
  • linux-azure Ubuntu 26.04 LTS 7.0.0-1014.14
  • linux-raspi Ubuntu 26.04 LTS 7.0.0-1019.19
  • linux-riscv Ubuntu 26.04 LTS 7.0.0-31.31.1

ubuntu advisories UBUNTU-CVE-2026-64457

Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0

  • kernel-default SLES 16.0, SLE High Availability Extension 16.0, Linux Micro 6.2 +1 more 6.12.0-160000.39.1
  • kernel-rt Linux Micro 6.2 6.12.0-160000.39.1
  • kernel-64kb SLES 16.0, Linux Micro 6.2, SLES for SAP applications 16.0 6.12.0-160000.39.1
  • kernel-source SLES 16.0, Linux Micro 6.2, SLES for SAP applications 16.0 6.12.0-160000.39.1
  • kernel-default-base SLES 16.0, Linux Micro 6.2, SLES for SAP applications 16.0 6.12.0-160000.39.1.160000.2.26
  • kernel-syms SLES 16.0, Linux Micro Extras 6.2, SLES for SAP applications 16.0 6.12.0-160000.39.1
  • kernel-azure SLES for SAP applications 16.0, SLES 16.0 6.12.0-160000.39.1
  • kernel-obs-qa SLES for SAP applications 16.0, SLES 16.0 6.12.0-160000.39.1

suse advisories SUSE-SU-2026:24197-1SUSE-SU-2026:24184-1SUSE-SU-2026:24235-1SUSE-SU-2026:24179-1

  • kernel-rt openSUSE Leap 16.0 6.12.0-160000.39.1
  • dtb-aarch64 openSUSE Leap 16.0 6.12.0-160000.39.1
  • kernel-64kb openSUSE Leap 16.0 6.12.0-160000.39.1
  • kernel-syms openSUSE Leap 16.0 6.12.0-160000.39.1
  • kernel-azure openSUSE Leap 16.0 6.12.0-160000.39.1
  • kernel-obs-qa openSUSE Leap 16.0 6.12.0-160000.39.1
  • kernel-source openSUSE Leap 16.0 6.12.0-160000.39.1
  • kernel-default openSUSE Leap 16.0 6.12.0-160000.39.1

opensuse advisories openSUSE-SU-2026:22091-1openSUSE-SU-2026:11476-1

Vendor advisories

What the vendors themselves say about their products: affected, fixed or not affected, and what to do.

red hat product security vex CVE-2026-64457 updated cvss 5.5

kernel: virtio_pci: fix vq info pointer lookup via wrong index

  • Red Hat Enterprise Linux 10 kernel
    affected: no fix available “Fix deferred”
  • Red Hat Enterprise Linux 6 perf, kernel, python-perf, kernel-kdump, kernel-firmware, kernel-bootwrapper, +1 more Red Hat Enterprise Linux 7 perf, kernel, bpftool, kernel-rt, python-perf, kernel-kdump, +8 more Red Hat Enterprise Linux 8 perf, kernel, bpftool, kernel-rt, kernel-core, kernel-tools, +29 more Red Hat Enterprise Linux 9 rv, perf, rtla, kernel, bpftool, libperf, +83 more
    not affected: vulnerable code not present

Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf

Exploit prediction

0.18% chance of exploitation in the next 30 days, higher than 7% of all scored CVEs (FIRST EPSS, 2026-11-08).

Affected products

  • Linux Linux

Classification

Technology feeds

References

Sources

Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.