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

drm/i915: fix incorrect RCU teardown order

i915_gem_busy_ioctl uses dma_resv_for_each_fence_unlocked() to iterate
over the fences in an GEM object without holding a reference but only
the RCU read side lock.

What can happen here is that the GEM object is destroyed concurrently
while i915_gem_busy_ioctl is still running. This won't free the GEM
objects memory, but still drops all the dma_fence references.

Now when dma_resv_for_each_fence_unlocked() sees a destroyed dma_fence it
assumes that a new fence list was installed and re-starts the loop.

But in the case of a destroyed GEM object a new fence list is never
installed, only the old one freed and therefore the iteration never
finishes resulting in an endless loop.

The solution is to drop the fence references only after the RCU grace
period.

The fixes tag is not necessary the patch introducing the problem, but the
one making it so worse that we need to address it.

This problem was pointed out by Sashiko-bot.

(cherry picked from commit 5113479556025093bf8133bb2dcaa33be2d50921)
Published: 2026-10-18
Score: n/a
EPSS: n/a
KEV: No
Impact: Denial of Service
Action: Apply Patch
AI Analysis

Impact

The bug in the Intel i915 DRM driver occurs when i915_gem_busy_ioctl iterates over DMA fences without holding a proper reference to the GEM object. If the GEM object is destroyed concurrently, the routine drops all pending dma_fence references but still runs inside the RCU read‑side critical section. The iterator then encounters a freed fence, incorrectly assumes a new fence list has been installed, and restarts the loop. Because no new list is ever installed for a destroyed object, the loop never terminates, causing an infinite CPU‑bound cycle in the kernel. For an attacker, this manifests as a local denial‑of‑service: a single crafted ioctl can consume kernel CPU, potentially exhausting system resources and hanging the invoking process. The primary weakness reflected here is a race condition and an improper synchronization between resource deallocation and use.

Affected Systems

All Linux kernel builds that ship without the fix for the i915 DRM driver are affected. The link to the commit that resolves the issue (5113479556025093bf8133bb2dcaa33be2d50921) indicates that any kernel version prior to that commit is vulnerable. Since the CNA vendor list only lists the Linux kernel generically, affected systems include any distribution or custom kernel that uses the buggy i915 driver until a patched kernel is deployed.

Risk and Exploitability

No CVSS score is published and the EPSS value is unknown, yet the flaw is not listed in the CISA KEV catalog. Nonetheless, because it requires local access to perform the damaging ioctl and does not rely on higher privileges, any user that can open a DRM device can trigger the endless loop. The lack of an explicit exploitation rate in the data suggests that the vulnerability is not widely known or actively exploited at this time, but the potential for resource exhaustion and kernel hang makes the risk significant for compromised hosts. Administrators should consider immediate patching or mitigating controls until the fix is applied.

Generated by OpenCVE AI on October 18, 2026 at 23:31 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply the kernel patch that drops fence references only after the RCU grace period (commit 5113479556025093bf8133bb2dcaa33be2d50921)
  • Upgrade to a Linux kernel version that includes this commit if the patch is not readily available
  • Restrict or remove write access to the /dev/dri/card* devices for non‑privileged users to prevent them from invoking the dangerous ioctl

Generated by OpenCVE AI on October 18, 2026 at 23:31 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 19 Oct 2026 00:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-362
CWE-416

Sun, 18 Oct 2026 15:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: drm/i915: fix incorrect RCU teardown order i915_gem_busy_ioctl uses dma_resv_for_each_fence_unlocked() to iterate over the fences in an GEM object without holding a reference but only the RCU read side lock. What can happen here is that the GEM object is destroyed concurrently while i915_gem_busy_ioctl is still running. This won't free the GEM objects memory, but still drops all the dma_fence references. Now when dma_resv_for_each_fence_unlocked() sees a destroyed dma_fence it assumes that a new fence list was installed and re-starts the loop. But in the case of a destroyed GEM object a new fence list is never installed, only the old one freed and therefore the iteration never finishes resulting in an endless loop. The solution is to drop the fence references only after the RCU grace period. The fixes tag is not necessary the patch introducing the problem, but the one making it so worse that we need to address it. This problem was pointed out by Sashiko-bot. (cherry picked from commit 5113479556025093bf8133bb2dcaa33be2d50921)
Title drm/i915: fix incorrect RCU teardown order
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-18T15:17:38.938Z

Reserved: 2026-09-25T10:25:14.355Z

Link: CVE-2026-98521

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-18T16:17:03.473

Modified: 2026-10-18T16:17:03.473

Link: CVE-2026-98521

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-19T02:00:09Z

Weaknesses
  • CWE-362

    Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')

  • CWE-416

    Use After Free