Executive brief
The Linux kernel's vhost-scsi subsystem, which enables virtual SCSI device emulation in virtual machines, contains a flaw in handling T10 Protection Information (PI) validation. A malicious or malformed guest request can supply protection bytes that exceed or equal the data payload, triggering a kernel panic and denying service. This affects any system running KVM/QEMU with vhost-scsi storage backends.
Technical details
The vulnerability is an insufficient input validation issue in the vhost-scsi driver's handling of T10 PI (Protection Information). When T10 PI is negotiated, the driver splits protection bytes from a data iterator before mapping request scatterlists. A malformed request can claim protection byte lengths that cover or exceed the full payload length, causing either zero data bytes to remain for mapping or underflow of exp_data_len. Both cases allow a zero scatterlist entry count to reach sg_alloc_table_chained(), which contains a BUG_ON(!nents) assertion, triggering a kernel panic. The fix adds explicit validation to reject protection lengths >= payload length before processing, and propagates negative error codes from protection SGL calculation. Network reachability is not required—only the ability to send a malformed SCSI command from a guest VM. A patch is available in upstream Linux and stable kernel branches.
Affected products
- Linux Linux kernel Multiple versions prior to patch (approximately 4.0 and later based on vhost-scsi history)
Timeline
- 2026-08-22: disclosed: CVE-2026-74703 published
- 2026-07-27: patched: Upstream patch d876c493fc4b811941bfeb4c80beb2dfc4bf025e committed
- 2026-08-19: patched: Stable kernel patch 2417a498cf3fe64d06faf87e236eda98dd4f04e0 merged