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

dma-fence: Make dma_fence_dedup_array() robust against 0-count input

dma_fence_dedup_array() returns 1 when called with num_fences == 0:
the for-loop body never executes, j stays at 0, and the final
`return ++j` yields 1. This contradicts both the kernel-doc ("Return:
Number of unique fences remaining in the array") and the natural
expectation that 0 input gives 0 output.

The caller __dma_fence_unwrap_merge() bails out via the
`if (count == 0 || count == 1)` fast path and so is save.

But amdgpu_userq_wait_*() could reach the dedup call with a zero local
count and dereference an uninitialized fence slot in the array.

Make the contract match the documentation by returning 0 early. This
also skips an unnecessary sort() call on an empty array.
Published: 2026-08-15
Score: 7.8 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

An off‑by‑one error in dma_fence_dedup_array causes the function to return 1 when the fence count is zero, contrary to its documented expectation of returning 0 for empty input. The invalid return value can lead to dereferencing an uninitialized fence slot in the AMDGPU user queue wait path, potentially corrupting kernel memory and triggering a kernel crash or denial of service.

Affected Systems

All Linux kernel builds that include the pre‑patch implementation of dma_fence_dedup_array, which is present in every kernel version before the commit that inserts the early 0‑return guard. Any distribution that uses an AMDGPU driver capable of invoking the user queue wait path is vulnerable; the advisory does not list specific vendor or version ranges.

Risk and Exploitability

The CVSS score of 7.8 indicates high severity, while the EPSS value of <1% suggests a very low likelihood of exploitation. Based on the description, the likely attack vector is local kernel manipulation: an attacker would need to execute privileged code or leverage another privilege‑escalation flaw to trigger the AMDGPU code path that calls the faulty routine. The vulnerability is not listed in CISA KEV, so no public exploit is confirmed. Mitigation focuses on applying the patch rather than on detection.

Generated by OpenCVE AI on August 18, 2026 at 05:20 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the kernel patch that adds a guard to return 0 when the fence count is zero; the patch is incorporated in mainline releases after the referenced commit.
  • If the system uses a backported or distribution kernel, apply the same change to the patch set or upgrade to a kernel version that already includes it.
  • Update the AMDGPU driver to a version that incorporates the kernel fix or backport the patch into the driver module if necessary.
  • After applying the patch or driver update, reboot the system or reload the amdgpu module to ensure the new code is active.

Generated by OpenCVE AI on August 18, 2026 at 05:20 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 18 Aug 2026 04:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-665
CWE-758

Tue, 18 Aug 2026 00:15:00 +0000

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

None

threat_severity

Moderate


Mon, 17 Aug 2026 22:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-665
CWE-758

Mon, 17 Aug 2026 20:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-398
CWE-457

Mon, 17 Aug 2026 06:00:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

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


Sat, 15 Aug 2026 20:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-398
CWE-457

Sat, 15 Aug 2026 06:00:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: dma-fence: Make dma_fence_dedup_array() robust against 0-count input dma_fence_dedup_array() returns 1 when called with num_fences == 0: the for-loop body never executes, j stays at 0, and the final `return ++j` yields 1. This contradicts both the kernel-doc ("Return: Number of unique fences remaining in the array") and the natural expectation that 0 input gives 0 output. The caller __dma_fence_unwrap_merge() bails out via the `if (count == 0 || count == 1)` fast path and so is save. But amdgpu_userq_wait_*() could reach the dedup call with a zero local count and dereference an uninitialized fence slot in the array. Make the contract match the documentation by returning 0 early. This also skips an unnecessary sort() call on an empty array.
Title dma-fence: Make dma_fence_dedup_array() robust against 0-count input
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-08-17T05:40:12.383Z

Reserved: 2026-08-09T03:40:39.905Z

Link: CVE-2026-72095

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-15T06:21:23.573

Modified: 2026-08-17T06:18:08.397

Link: CVE-2026-72095

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-08-15T00:00:00Z

Links: CVE-2026-72095 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-18T05:30:08Z

Weaknesses
  • CWE-824

    Access of Uninitialized Pointer