Severity by source
AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Local low-privilege access to a vhost device is required; scope change reflects that stale IOTLB translations expose host memory well outside the vhost component boundary.
Primary rating from Vendor (Linux).
CVSS VectorVendor: Linux
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Lifecycle Timeline
5DescriptionCVE.org
In the Linux kernel, the following vulnerability has been resolved:
vhost: reset the vring metadata cache on vring reconfiguration
vq->meta_iotlb[] caches the vhost_iotlb_map that backs each vring metadata region, and iotlb_access_ok() returns early on a cache hit, taking the hit as proof that the region has already been validated:
if (vhost_vq_meta_fetch(vq, addr, len, type)) return true;
The cache is reset on VHOST_IOTLB_UPDATE and VHOST_IOTLB_INVALIDATE, on device IOTLB (re)initialisation and on vq reset, but not when VHOST_SET_VRING_ADDR replaces vq->desc, vq->avail and vq->used, nor when VHOST_SET_VRING_NUM changes the region sizes.
With a device IOTLB attached both ioctls are accepted while the vq is live, and neither validates the addresses at ioctl time: vq_access_ok() and vq_log_used_access_ok() return true early because the addresses are GIOVAs, deferring validation to prefetch time. Once the cache has been populated that deferred validation no longer runs -- vq_meta_prefetch() hits the stale entry and returns true -- and vhost_vq_meta_fetch() keeps translating through the old mapping as
map->addr + addr - map->start
for an address the mapping no longer covers. vhost_copy_to_user() and vhost_copy_from_user() consume the result with __copy_to_user() and __copy_from_user(), which do not check it either, so a subsequent used ring update or descriptor fetch accesses memory outside the region the IOTLB actually maps.
Reset the metadata cache whenever the vring is reconfigured, so the new addresses are pushed back through iotlb_access_ok()'s slow path.
AnalysisAI
Out-of-bounds host memory access in the Linux kernel vhost subsystem results from a stale metadata cache that is not invalidated when vring addresses or sizes are reconfigured via VHOST_SET_VRING_ADDR or VHOST_SET_VRING_NUM while a virtqueue is live. Systems running KVM/QEMU virtualization with vhost and a device IOTLB attached - spanning kernel versions from 4.11 through unpatched stable series - are affected, with the scope change (S:C) in the CVSS vector indicating potential read/write access to host memory beyond the vhost subsystem boundary. …
Unlock full vulnerability intelligence
- Risk assessment & exploitation conditions
- Attack chain visualization
- Remediation with exact patch versions
- Threat intelligence from 22 sources
- Personal watchlist & email alerts
Free forever · No credit card required
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata
Vulnerability AssessmentAI
| Exploitation | Three specific conditions must hold simultaneously: (1) The attacker must have low-privilege local access to a vhost device node (e.g., /dev/vhost-net) - this is PR:L per the CVSS vector, not unauthenticated remote access. … Additional conditions and limiting factors are described in the full assessment. |
| Risk Assessment | The official CVSS 3.1 score of 8.8 (AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H) accurately captures the attack surface: local access with low privileges, no special timing or race condition, and a scope change implying host memory exposure beyond the vhost component. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in. |
| Exploit Scenario | A local attacker with access to a vhost device on a KVM host opens the device, attaches a device IOTLB, starts a virtqueue so that the vring metadata cache is populated, then issues VHOST_SET_VRING_ADDR or VHOST_SET_VRING_NUM to reconfigure vring addresses or sizes while the queue remains live. The stale cache entry causes vhost_vq_meta_fetch() to return the old mapping, and a subsequent used-ring update or descriptor fetch executes __copy_to_user() or __copy_from_user() against an address outside the IOTLB-mapped region, accessing arbitrary host memory. … |
| Remediation | Upgrade to a patched Linux kernel stable release: 5.10.265, 5.15.216, 6.1.183, 6.6.152, 6.12.104, 6.18.45, 7.1.9, or 7.2, which include the fix that resets vq->meta_iotlb[] whenever VHOST_SET_VRING_ADDR or VHOST_SET_VRING_NUM is processed. … Detailed patch versions, workarounds, and compensating controls in full report. |
Recommended ActionAI
Within 24 hours, inventory all KVM/QEMU hypervisors using vhost backends with device IOTLB attached to establish precise vulnerability scope and criticality ranking. …
Sign in for detailed remediation steps and compensating controls.
Threat intelligence, references, and detailed analysis are available after sign-in.
Same technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-64002
GHSA-mr6w-hqp3-cg59