CyberRota Analysis
AI-GeneratedThe vulnerability affects the AMD IOMMU debugfs implementation in the Linux kernel, where improper handling of user input in the iommu_mmio_write() and iommu_capability_write() functions can lead to out-of-bounds memory access due to negative integer values being processed. This flaw could potentially allow an attacker to exploit the debugfs interface, leading to unauthorized memory access or system instability. Organizations utilizing Linux systems with AMD IOMMU should prioritize applying the patch to mitigate the risk of exploitation.
Original NVD Description
In the Linux kernel, the following vulnerability has been resolved: iommu/amd: Remove latent out-of-bounds access in IOMMU debugfs In iommu_mmio_write() and iommu_capability_write(), the variables dbg_mmio_offset and dbg_cap_offset are declared as int. However, they are populated using kstrtou32_from_user(). If a user provides a sufficiently large value, it can become a negative integer. Prior to this patch, the AMD IOMMU debugfs implementation was already protected by different mechanisms. 1. #define OFS_IN_SZ 8 ensures the user string <= 8 bytes, so e.g. 0xffffffff isn't a valid input. if (cnt > OFS_IN_SZ) return -EINVAL; 2. Implicit type promotion in iommu_mmio_write(), dbg_mmio_offset is int and iommu->mmio_phys_end is u64 if (dbg_mmio_offset > iommu->mmio_phys_end - sizeof(u64)) return -EINVAL; 3. The show handlers would currently catch the negative number and refuse to perform the read. Replace kstrtou32_from_user() with kstrtos32_from_user() to parse the input, and check for negative values to explicitly prevent out-of-bounds memory accesses directly in iommu_mmio_write() and iommu_capability_write().
Related CVEs
Other vulnerabilities affecting the same vendor(s)