KernelScan.io

HIGH Introduced in 3.6

vhost-scsi MemTable Race

CVE-2026-93782

CVSS 7.8 / 10.0 NVD

CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H

KernelScan AI7.6HIGH

01

In the Linux kernel, the following vulnerability has been resolved: vhost-scsi: flush backend after device ioctls vhost-scsi translates guest response descriptors into userspace iovecs when commands are submitted. Target-core completes those commands asynchronously, so VHOST_SET_MEM_TABLE can replace the memory table while an in-flight command still retains response iovecs translated through the old table. If the old mapping is reused after VHOST_SET_MEM_TABLE returns, command completion can write the response to an unrelated userspace object. Flush the vhost-scsi backend after vhost_dev_ioctl() handles a device ioctl. This waits for in-flight commands that can still use the old response iovecs before the ioctl returns.

02

Engine v0.6.0

Risk summary

Products running virtualization hosts with the vhost-scsi backend enabled are at risk. A malicious guest VM can exploit a race between asynchronous SCSI command completion and guest memory table updates to corrupt host-side memory through stale response mappings, potentially escaping the VM boundary to execute code on the host. Hosts that do not use vhost-scsi or do not run untrusted VMs are unaffected.

Affecteddrivers/vhost/scsi.c (vhost-scsi)

Vulnerability analysis

The vhost-scsi subsystem translates guest I/O response descriptors into host-side memory mappings at command submission time, but the SCSI backend completes those commands asynchronously. While commands are still in flight, a device ioctl that updates the guest memory table can swap out the old table, leaving in-flight commands holding response mappings derived from the now-stale table. When such a command finishes, it writes its response through those outdated mappings, corrupting an unrelated host userspace object. The fix adds a backend flush after each device ioctl returns, ensuring all in-flight commands that could still reference the old memory table complete before the ioctl returns to the caller. A malicious guest VM on a host with the vhost-scsi backend enabled can trigger this by issuing SCSI I/O whose completion overlaps a guest memory layout change, and the guest requires no host-side privileges to do so.

03

BranchIntroducedFixed inPatch commit
5.103.65.10.2716436411203d8
5.153.65.15.222cec088285adc
6.13.66.1.189e0bf6bed5286
6.123.66.12.111981c97d09c6b
6.183.66.18.536c1b802e36b0
6.63.66.6.158be2636e1b21f
mainline3.67.222598f55a4c2
cip/5.103.65.10.271-cip786436411203d8
cip/5.10-rt3.65.10.272-cip79-rt356436411203d8
cip/6.13.66.1.189-cip61e0bf6bed5286
cip/6.1-rt3.66.1.189-cip61-rt32e0bf6bed5286
cip/6.123.66.12.111-cip32981c97d09c6b

04

State of the newest release of each Civil Infrastructure Platform SLTS tree, from CIP's own fix records.

CIP treeState
cip/6.12Fixed in 6.12.111-cip32
cip/6.1Fixed in 6.1.189-cip61
cip/6.1-rtFixed in 6.1.189-cip61-rt32
cip/5.10Fixed in 5.10.271-cip78
cip/5.10-rtFixed in 5.10.272-cip79-rt35
cip/4.19Affected — no CIP fix yet (latest 4.19.325-cip136)
cip/4.19-rtAffected — no CIP fix yet (latest 4.19.325-cip136-rt50)
cip/4.4Affected — no CIP fix yet (latest 4.4.302-cip115)
cip/4.4-rtAffected — no CIP fix yet (latest 4.4.302-cip115-rt63)