CVE Catalog

CVE-2026-97988

Unknown
Published: Translated: NVD NIST

Summary

In the Linux kernel, the vhost subsystem has an issue with invalidating vring access on IOTLB transitions. When VIRTIO_F_ACCESS_PLATFORM changes, cached vring pointers and IOTLB metadata are interpreted in a different address space, potentially leaving stale ring mappings in use. A common vhost_clear_device_iotlb() helper was added to serialize the transition with workers and prevent mixed address space mappings.

Risk Assessment

Stale vring mappings can cause memory errors, data corruption, or privilege escalation in virtualized environments. Organizations using vhost-net or vhost-vsock are exposed to instability and potential security gaps.

Recommendation

Update the Linux kernel to a version containing the fix. After updating, ensure userspace configures vring addresses for the new address mode after clearing ACCESS_PLATFORM.

Other vulnerabilities in Linux kernel

See all
Original NVD description (English source)

In the Linux kernel, the following vulnerability has been resolved: vhost: invalidate vring access on IOTLB transitions When VIRTIO_F_ACCESS_PLATFORM changes, cached vring pointers and IOTLB metadata are interpreted in a different address space. Keeping them across the transition can leave stale ring mappings in use. Clearing d->iotlb before taking the VQ locks also lets a worker observe a transient NULL d->iotlb and fall back to d->umem while translating a descriptor. Add a common vhost_clear_device_iotlb() helper for vhost-net and vhost-vsock. Take all VQ mutexes in index order before dropping the device-wide IOTLB, invalidate each VQ's cached ring access and metadata, clear pending IOTLB messages, and free the old table after the handoff. This serializes the transition with workers and prevents mixed address space mappings. On the first direct-to-IOTLB transition, invalidate the cached vring addresses. When an existing device IOTLB is replaced, preserve the GIOVA ring addresses and reset only the metadata cache. After clearing ACCESS_PLATFORM, userspace must configure the vring addresses for the new address mode. vhost_vq_invalidate_access() clears desc, avail, and used together. Treat the VQ as invalidated only when all three are NULL, since a single GIOVA address may legitimately be zero.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS