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().
Published: 2026-07-19
Score: 5.5 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability occurs in iommu_mmio_write() and iommu_capability_write() where user‑supplied offsets are parsed as unsigned 32‑bit values. A sufficiently large input can wrap to a negative integer, which then bypasses existing bounds checks and leads to out‑of‑bounds memory reads or writes. Such kernel memory corruption can allow an attacker to read sensitive data or potentially execute arbitrary code if the corrupted region controls execution flow. The patch replaces the unsigned parser with a signed one and explicitly rejects negative values, thereby preventing the out‑of‑bounds access.

Affected Systems

All Linux kernel installations that have not incorporated the patch identified by commit 488d2c76 (and related kernel tree changes). Vendor impact is Linux; any distribution using the Linux kernel prior to the patch is potentially vulnerable.

Risk and Exploitability

The CVSS score is 5.5, indicating a moderate severity. The EPSS score is below 1% and the vulnerability is not listed in the CISA KEV catalog, suggesting that current exploitation activity is low. The likely attack vector is a local user who can write to IOMMU debugfs entries, which is typically restricted to privileged users; if the debugfs interface is exposed to unprivileged users, the risk would increase. The conditions for exploitation require the presence of the vulnerable debugfs interface and correct input formatting to trigger the out‑of‑bounds behavior.

Generated by OpenCVE AI on August 1, 2026 at 07:24 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update to a Linux kernel version that includes the patch to kstrtos32_from_user and negative value checks (e.g., kernel commits 488d2c76 and following).
  • If upgrading the kernel is not immediately possible, limit or disable access to the IOMMU debugfs entries by restricting debugfs mounting or by unmounting debugfs for unprivileged users.
  • Implement audit rules to log attempts to write to IOMMU debugfs entries, enabling detection of suspicious activity.

Generated by OpenCVE AI on August 1, 2026 at 07:24 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Ubuntu USN Ubuntu USN USN-8593-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-8603-1 Linux kernel (Azure) vulnerabilities
Ubuntu USN Ubuntu USN USN-8618-1 Linux kernel vulnerabilities
History

Tue, 21 Jul 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-787
References
Metrics threat_severity

None

cvssV3_1

{'score': 5.5, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Low


Sun, 19 Jul 2026 16:15:00 +0000

Type Values Removed Values Added
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().
Title iommu/amd: Remove latent out-of-bounds access in IOMMU debugfs
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-07-19T15:41:08.054Z

Reserved: 2026-07-19T07:54:57.039Z

Link: CVE-2026-64186

cve-icon Vulnrichment

No data.

cve-icon NVD

No data.

cve-icon Redhat

Severity : Low

Publid Date: 2026-07-19T00:00:00Z

Links: CVE-2026-64186 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-01T07:30:13Z

Weaknesses