ZeroHour

CVE-2026-89450

niche

Guest-controlled out-of-range vSID write in Linux kernel tegra241-cmdqv IOMMU driver

CVSS 3.1
8.8 high
EPSS
Published
()
Modified
AI analysis

The Linux kernel's tegra241-cmdqv driver (SMMUv3 command-queue virtualization for NVIDIA Tegra241/Grace SoCs) fails to properly validate a guest-provided virtual Stream ID (vSID) before writing it into the SID_MATCH register. The hardware's VIRT_SID field is only 20 bits wide, but the code only rejected values above UINT_MAX, so a wider guest-supplied value could be programmed beyond the field's bounds. Because the vSID/virt_id is guest-controlled, a malicious or compromised virtual machine on an affected host could trigger the bad register write, with high impact to confidentiality, integrity, and availability (CVSS 8.8, effectively a guest-to-host escape primitive). Only systems on Tegra241 (NVIDIA Grace) hardware exposing the virtualized SMMU command queues to guests are affected. No public proof of concept or in-the-wild exploitation is known.

What to do: Apply kernel updates containing the tegra241-cmdqv fix, which validates virt_sid against the 20-bit VIRT_SID field width with FIELD_MAX() and programs the register with FIELD_PREP(). Until patched, restrict or disable assignment of the virtualized SMMU (vcmdq/vSMMU) to untrusted guests on Grace-based hosts. Audit hypervisor logs for guests attempting to configure unusually large Stream ID values on vINTF/vSID setup.

Affected
Linux kernel (drivers/iommu/tegra241-cmdqv)
Estimated exposure
nichelikely hundreds to low thousands of host systems worldwide — The vulnerable code path only exists on NVIDIA Tegra241/Grace-based platforms (e.g., GH200-class AI/HPC servers) that run Linux KVM and expose SMMUv3 command-queue virtualization to guests — a specialized subset of deployments, not general…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

In the Linux kernel, the following vulnerability has been resolved: iommu/tegra241-cmdqv: Reject a vSID wider than the SID_MATCH field tegra241_vintf_init_vsid() programs the guest-provided vSID into SID_MATCH, whose VIRT_SID field spans bits [20:1] with bit 0 as the match-enable flag. The HW therefore matches only a 20-bit Stream ID. The bound check rejects only virt_sid > UINT_MAX, which admits a value far wider than the field. The write "virt_sid virt_id is guest-controlled, a VMM can trigger it. Validate virt_sid against the field width with FIELD_MAX(), and program the register with FIELD_PREP() so the value and the field stay consistent.

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

In the news

No ingested article mentions this CVE yet.