UBUNTU-CVE-2026-89450: High severity ubuntu/linux-hwe-edge vulnerability
In the Linux kernel, the following vulnerability has been resolved: iommu/tegra241-cmdqv: Reject a vSID wider than the SIDMATCH field tegra241vintfinitvsid() programs the guest-provided vSID into SIDMATCH, whose VIRTSID 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 virtsid > UINTMAX, which admits a value far wider than the field. The write "virtsid << 1 | 0x1" then drops every bit above 20: a virtsid of 0x80000000 lands as SIDMATCH = 0x1, a valid match on vSID 0, so the entry aliases the wrong Stream ID. Because vdev->virtid is guest-controlled, a VMM can trigger it. Validate virtsid against the field width with FIELDMAX(), and program the register with FIELDPREP() so the value and the field stay consistent.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
ubuntu/linux-hwe-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42~24.04.1 - Upgrade
Upgrade
ubuntu/linux-riscv-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1~24.04.1 - Upgrade
Upgrade
ubuntu/linuxto a version that resolves this vulnerability.Fixed in 7.0.0-42.42 - Upgrade
Upgrade
ubuntu/linux-awsto a version that resolves this vulnerability.Fixed in 7.0.0-1016.17 - Upgrade
Upgrade
ubuntu/linux-gcpto a version that resolves this vulnerability.Fixed in 7.0.0-1016.18 - Upgrade
Upgrade
ubuntu/linux-ibmto a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oem-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oracleto a version that resolves this vulnerability.Fixed in 7.0.0-1015.16 - Upgrade
Upgrade
ubuntu/linux-riscvto a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1 - Configuration
Reject guest-provided virt_sid values wider than the SID_MATCH VIRT_SID field, and use FIELD_PREP() when programming SID_MATCH so the value remains within the field.
Linux kernel iommu/tegra241-cmdqv virt_sid validation and SID_MATCH programming = Validate virt_sid with FIELD_MAX() and program SID_MATCH with FIELD_PREP()