CVE-2026-97994

CVE-2026-97994

published September 25, 2026

CVSS
—
EPSS
0%
Percentile
9.3
In the wild
Unconfirmed
What it is

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

vhost/vdpa: reject VRING_NUM larger than device max

vhost_vring_set_num() accepts any non-zero power-of-two queue size that

fits in 16 bits. vhost-vdpa then passes that value to set_vq_num()

without comparing it with get_vq_num_max().

A process with access to /dev/vhost-vdpa-* can therefore configure a

queue larger than the device advertises. With vdpa_sim, the worker can

walk descriptors beyond the mapped descriptor ring. KASAN reports a

16-byte out-of-bounds read, corresponding to one vring_desc, in the

vringh IOTLB path:

BUG: KASAN: out-of-bounds in _copy_from_iter

Read of size 16

copy_from_iotlb

copydesc_iotlb

vringh_getdesc_iotlb

vdpasim_net_work

Cache get_vq_num_max() immediately after reset. Some backends derive

it from writable queue-size state, so querying it after SET_NUM may

return the current size instead of the device capability. Invalidate

the cached value before reset so a failed reset leaves SET_NUM

disabled.

For VHOST_SET_VRING_NUM, copy the complete vring state once and use

the same index and size for validation, vq->num, and set_vq_num().

This ensures that validation and use operate on the same copied values.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00200 · 9.3th percentile
Published
2026-09-25T15:17Z
References (5)
EPSS history
Timeline
  • 27 SEP 03:28Z
    EPSS moved — → 0%
    epss
  • 25 SEP 10:23Z
    vhost/vdpa: reject VRING_NUM larger than device max
    cvelistv5