---
id: CVE-2026-72095
title: 'dma-fence: Make dma_fence_dedup_array() robust against 0-count input'
summary: |-
  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 execut…
severity: high
cvss: 7.8
cvssVector: 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'
cvssSource: cna
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 575ec9b0c2f11f40535ea737ed5a64792780d1ef <
    7aa8f3dba53422465dbe1be8dbb7240304462bb2
  - >-
    Linux >= 575ec9b0c2f11f40535ea737ed5a64792780d1ef <
    e2d9a2ea178a5da0b4a6693e8ebca5c7fc4d7051
  - >-
    Linux >= 575ec9b0c2f11f40535ea737ed5a64792780d1ef <
    77a9298741f8f9e8b963c977f5582ab21c6d3427
  - Linux 6.16
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: total
  timestamp: '2026-10-16T15:51:46.940002Z'
published: '2026-08-15'
updated: '2026-10-16'
sourceUpdated: '2026-10-16T15:53:20.529Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-72095'
references:
  - url: 'https://git.kernel.org/stable/c/7aa8f3dba53422465dbe1be8dbb7240304462bb2'
  - url: 'https://git.kernel.org/stable/c/e2d9a2ea178a5da0b4a6693e8ebca5c7fc4d7051'
  - url: 'https://git.kernel.org/stable/c/77a9298741f8f9e8b963c977f5582ab21c6d3427'
tags:
  - cve.org
epss: 0.00173
epssPercentile: 0.06336
ingestedAt: '2026-10-16T17:24:46.878Z'
---

## Overview

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.

## Affected

- `Linux >= 575ec9b0c2f11f40535ea737ed5a64792780d1ef < 7aa8f3dba53422465dbe1be8dbb7240304462bb2`
- `Linux >= 575ec9b0c2f11f40535ea737ed5a64792780d1ef < e2d9a2ea178a5da0b4a6693e8ebca5c7fc4d7051`
- `Linux >= 575ec9b0c2f11f40535ea737ed5a64792780d1ef < 77a9298741f8f9e8b963c977f5582ab21c6d3427`
- `Linux 6.16`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
