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: < 1% Very Low
KEV: No
Impact: Memory corruption and potential denial of service
Action: Patch Now
AI Analysis

Impact

The flaw is in the Linux kernel's AMD IOMMU subsystem where a negative error code from the domain ID allocator is stored in an unsigned 32‑bit variable. The subsequent check compares the unsigned value to zero, causing the test to never trigger. As a result, a nested IOMMU domain is created with a host domain ID that was never allocated, which can lead to the driver accessing memory or devices that should not have been assigned. This is an example of improper sign conversion (CWE‑253).

Affected Systems

All instances of the Linux kernel that include the AMD IOMMU driver and use the nested domain allocation path prior to the patch commits 80c231f5577229d1e90a1e312b3095f9502f8625 or fa5c0827f0b7bac6d0a188f10118151769ae68fd are affected. The CVE does not provide specific version ranges, so any kernel build that contains the vulnerable code path is affected.

Risk and Exploitability

The CVSS score of 7.8 indicates a high severity vulnerability. Because the flaw involves a simple unchecked integer conversion, the complexity of exploiting it is low. EPSS score of < 1% indicates a very low exploitation probability, making successful exploitation unlikely. The vulnerability is not listed in the CISA KEV catalog. The attack vector is likely local – an attacker needs to trigger nested domain allocation, which normally requires privileged access to the IOMMU subsystem or a kernel module that performs the allocation. An attacker who can exercise the vulnerable code path could cause the driver to set up an invalid host domain ID, leading to memory corruption or a system crash.

Generated by OpenCVE AI on October 1, 2026 at 01:48 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a version that includes the patch commits 80c231f5577229d1e90a1e312b3095f9502f8625 or fa5c0827f0b7bac6d0a188f10118151769ae68fd.
  • Reboot the system after applying the kernel update to ensure the updated kernel is loaded and the IOMMU domain allocation path is fixed.
  • Monitor kernel logs for IOMMU-related errors after the kernel upgrade and check for any signs of instability or unexpected device behavior.

Generated by OpenCVE AI on October 1, 2026 at 01:48 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 30 Sep 2026 15:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-195

Tue, 29 Sep 2026 13:15:00 +0000


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

Type Values Removed Values Added
Weaknesses CWE-195

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

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

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-10-19T09:12:07.970Z

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-10-19T10:17:51.570

Link: CVE-2026-98002

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-09-25T00:00:00Z

Links: CVE-2026-98002 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-01T02:00:15Z

Weaknesses
  • CWE-253

    Incorrect Check of Function Return Value