Description
In the Linux kernel, the following vulnerability has been resolved:

iommu/amd: Fix ineffective error check in nested domain allocation

amd_iommu_pdom_id_alloc() returns an int: a domain ID on success, or the
negative errno from ida_alloc_range() when the ID space is exhausted or
memory is short. amd_iommu_alloc_domain_nested() stores that return value
in gdom_info->hdom_id, which is a u32, and only then tests it:

gdom_info->hdom_id = amd_iommu_pdom_id_alloc();
if (gdom_info->hdom_id <= 0) {

The assignment discards the sign, so -ENOSPC becomes 0xffffffe4 and the
test never fires. The nested domain is then set up with a host domain ID
that was never allocated, instead of the allocation failing with -ENOSPC.

Keep the value in an int, test it there, and store it only once it is
known to be valid, which is what the other amd_iommu_pdom_id_alloc()
callers already do.
Published: 2026-09-25
Score: 7.8 High
EPSS: n/a
KEV: No
Impact: Privilege Escalation and Potential Denial of Service
Action: Prompt Patch
AI Analysis

Impact

The bug stems from the function that allocates an IOMMU domain ID converting a negative error code into an unsigned 32‑bit value. When the ID pool is exhausted, the allocation returns -ENOSPC, but the code stores it into an unsigned variable and then tests the value after the conversion. Because the test never fires, a domain is created with a host ID that was never properly allocated, potentially allowing the nested domain to access or corrupt memory it should not, leading to privilege escalation or denial of service.

Affected Systems

Affected products are all instances of the Linux kernel that include the AMD IOMMU subsystem before the patch commit. The kernel versions prior to the inclusion of the commits linked in the references are vulnerable. The vulnerability is not limited to a specific kernel release series, so any deployment using the affected code path is at risk.

Risk and Exploitability

The CVSS score for this vulnerability is not provided, but the complexity of exploitation is low: an attacker with the ability to trigger nested domain allocation can observe the reuse of an unallocated host ID. The EPSS score is not available, so exploitation probability cannot be quantified, and the vulnerability is not listed in the CISA KEV catalog. The likely attack vector is local; however, an attacker who can influence domain allocation through privileged interfaces may leverage the flaw to gain higher privileges or cause a system crash.

Generated by OpenCVE AI on September 25, 2026 at 15:25 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a version that includes the patch commits 80c231f5 or fa5c0827.
  • Reboot the system to ensure the updated kernel is active and the IOMMU domain allocation path is fixed.
  • If immediate kernel upgrade is not possible, restrict or disable nested IOMMU domain allocation on affected systems as a temporary mitigation.

Generated by OpenCVE AI on September 25, 2026 at 15:25 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 25 Sep 2026 15:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-190
CWE-680

Fri, 25 Sep 2026 15:00:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

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


Fri, 25 Sep 2026 10:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: iommu/amd: Fix ineffective error check in nested domain allocation amd_iommu_pdom_id_alloc() returns an int: a domain ID on success, or the negative errno from ida_alloc_range() when the ID space is exhausted or memory is short. amd_iommu_alloc_domain_nested() stores that return value in gdom_info->hdom_id, which is a u32, and only then tests it: gdom_info->hdom_id = amd_iommu_pdom_id_alloc(); if (gdom_info->hdom_id <= 0) { The assignment discards the sign, so -ENOSPC becomes 0xffffffe4 and the test never fires. The nested domain is then set up with a host domain ID that was never allocated, instead of the allocation failing with -ENOSPC. Keep the value in an int, test it there, and store it only once it is known to be valid, which is what the other amd_iommu_pdom_id_alloc() callers already do.
Title iommu/amd: Fix ineffective error check in nested domain allocation
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-09-25T14:41:49.625Z

Reserved: 2026-09-25T10:19:56.068Z

Link: CVE-2026-98002

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-25T11:17:28.430

Modified: 2026-09-25T15:18:03.580

Link: CVE-2026-98002

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-25T15:30:06Z

Weaknesses
  • CWE-190

    Integer Overflow or Wraparound

  • CWE-680

    Integer Overflow to Buffer Overflow