KernelScan.io

HIGH Introduced in 6.17

iommu VSID OOB

CVE-2026-90425

CVSS 8.8 / 10.0 NVD

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

KernelScan AI4.4MEDIUM

01

In the Linux kernel, the following vulnerability has been resolved: iommu/tegra241-cmdqv: Require exactly one Stream ID for a vSID tegra241_vintf_init_vsid() maps a guest vSID to a single physical Stream ID taken from master->streams[0], and only warns when the device does not have exactly one stream. A device with several streams gets only its first one mapped, so a guest vSID invalidation cannot reach the others' ATC and IOTLB entries; a device with none makes master->streams a ZERO_SIZE_PTR, read out of bounds. Reject the mapping with -EOPNOTSUPP if master->num_streams is not one.

02

Engine v0.6.0

Risk summary

A privileged local user on a system with NVIDIA Grace CPU and the Tegra241 CMDQV IOMMU can crash the kernel by mapping a guest virtual Stream ID for a device that has zero registered streams, causing an out-of-bounds read from a zero-sized allocation. The bug lives in the iommufd VM device-assignment path, so only hosts running virtualized workloads with device passthrough on this specific hardware are affected.

Affecteddrivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.c (iommu/tegra241-cmdqv)

Vulnerability analysis

When mapping a guest virtual Stream ID to a physical Stream ID, the Tegra241 CMDQV driver only warns if the target device does not have exactly one stream and then reads the first stream entry regardless. If the device has zero streams, the stream array is a zero-sized allocation whose pointer is invalid, so indexing it reads from a low unmapped address and crashes the kernel; if the device has several streams, only the first is mapped and guest invalidation commands silently fail to reach the remaining streams' caches, leaving stale entries. The fix refuses the mapping whenever the stream count is not exactly one, preventing both the invalid read and the incomplete mapping. The vulnerable path is reachable only through the iommufd virtual-device allocation interface used by virtual-machine monitors for device passthrough, requires real CAP_SYS_ADMIN, and exists solely on NVIDIA Grace CPU systems with the Tegra241 CMDQV IOMMU.

03

BranchIntroducedFixed inPatch commit
7.26.177.2.60b139ec4641c
6.186.176.18.529b37afb2d34d
mainline6.177.3-rc1fb292bfc9be9