CVE-2026-64186: iommu/amd: Remove latent out-of-bounds access in IOMMU debugfs

Greg Kroah-Hartman <[email protected]>
Newsgroups org.kernel.vger.linux-cve-announce
Message-ID <2026071939-CVE-2026-64186-7a61@gregkh>
From: Greg Kroah-Hartman <[email protected]>

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().

The Linux kernel CVE team has assigned CVE-2026-64186 to this issue.


Affected and fixed versions
===========================

	Issue introduced in 6.17 with commit 7a4ee419e8c144b747a8915856e91a034d7c8f34 and fixed in 6.18.34 with commit 488d2c76bd9f78433a70690d1054bfae3d39a407
	Issue introduced in 6.17 with commit 7a4ee419e8c144b747a8915856e91a034d7c8f34 and fixed in 7.0.11 with commit 62f9dfbf1aceae88b03c5ca08f7d36e943939dec
	Issue introduced in 6.17 with commit 7a4ee419e8c144b747a8915856e91a034d7c8f34 and fixed in 7.1 with commit 8dfd3d8d74435344ee8dc9237596959c8b2a6cbe

Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.

Unaffected versions might change over time as fixes are backported to
older supported kernel versions.  The official CVE entry at
	https://cve.org/CVERecord/?id=CVE-2026-64186
will be updated if fixes are backported, please check that for the most
up to date information about this issue.


Affected files
==============

The file(s) affected by this issue are:
	drivers/iommu/amd/debugfs.c


Mitigation
==========

The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes.  Individual
changes are never tested alone, but rather are part of a larger kernel
release.  Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all.  If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
	https://git.kernel.org/stable/c/488d2c76bd9f78433a70690d1054bfae3d39a407
	https://git.kernel.org/stable/c/62f9dfbf1aceae88b03c5ca08f7d36e943939dec
	https://git.kernel.org/stable/c/8dfd3d8d74435344ee8dc9237596959c8b2a6cbe
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.