linux/drivers/iommu/amd
Songtang Liu 0ec4aaf5f3 iommu/amd: Fix potential out-of-bounds read in iommu_mmio_show
[ Upstream commit a0c7005333 ]

In iommu_mmio_write(), it validates the user-provided offset with the
check: `iommu->dbg_mmio_offset > iommu->mmio_phys_end - 4`.
This assumes a 4-byte access. However, the corresponding
show handler, iommu_mmio_show(), uses readq() to perform an 8-byte
(64-bit) read.

If a user provides an offset equal to `mmio_phys_end - 4`, the check
passes, and will lead to a 4-byte out-of-bounds read.

Fix this by adjusting the boundary check to use sizeof(u64), which
corresponds to the size of the readq() operation.

Fixes: 7a4ee419e8 ("iommu/amd: Add debugfs support to dump IOMMU MMIO registers")
Signed-off-by: Songtang Liu <liusongtang@bytedance.com>
Reviewed-by: Dheeraj Kumar Srivastava <dheerajkumar.srivastava@amd.com>
Tested-by: Dheeraj Kumar Srivastava <dheerajkumar.srivastava@amd.com>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2025-12-18 14:02:49 +01:00
..
amd_iommu.h iommu/amd: Refactor AMD IOMMU debugfs initial setup 2025-07-15 11:41:52 +01:00
amd_iommu_types.h Merge branches 'apple/dart', 'ti/omap', 'riscv', 'intel/vt-d' and 'amd/amd-vi' into next 2025-09-26 10:03:33 +02:00
debugfs.c iommu/amd: Fix potential out-of-bounds read in iommu_mmio_show 2025-12-18 14:02:49 +01:00
init.c Merge branches 'apple/dart', 'ti/omap', 'riscv', 'intel/vt-d' and 'amd/amd-vi' into next 2025-09-26 10:03:33 +02:00
io_pgtable.c iommu/amd/pgtbl: Fix possible race while increase page table level 2025-09-19 09:39:40 +02:00
io_pgtable_v2.c iommu/pages: Remove iommu_alloc_page_node() 2025-04-17 16:22:51 +02:00
iommu.c iommu/amd: Add support to remap/unmap IOMMU buffers for kdump 2025-09-05 14:44:30 +02:00
Kconfig iommu/amd: Convert to msi_create_parent_irq_domain() helper 2025-07-04 10:28:10 +02:00
Makefile iommu: make inclusion of amd directory conditional 2025-05-16 08:46:46 +02:00
pasid.c iommu/amd: Consolidate protection domain free code 2025-03-10 09:27:11 +01:00
ppr.c iommu/pages: Remove the order argument to iommu_free_pages() 2025-04-17 16:22:33 +02:00
quirks.c iommu/amd: Include PCI segment ID when initialize IOMMU 2022-07-07 09:37:51 +02:00