MEDIUM 5.5

CVE-2026-52965: Linux Kernel DRM/TTM LRU Infinite Loop Denial of Service

This is a memory management bug in the Linux kernel's graphics driver subsystem (DRM/TTM). When the kernel tries to move graphics memory to disk storage and that operation fails, it attempts to restore the memory's position in its tracking list. However, the restoration logic places the memory in the wrong position—ahead of where the system was searching—which causes the kernel to repeatedly examine the same memory block in an infinite loop. This infinite loop can freeze or crash the system. The fix involves changing when certain cleanup operations happen and how they handle memory marked as non-evictable.

Source data · NVD / CISA · public domain

CVSS
3.1 · 5.5 MEDIUM · CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Weaknesses (CWE)
CWE-835
Affected products
4 configuration(s)
Published / Modified
2026-06-24 / 2026-07-14

NVD description (verbatim)

In the Linux kernel, the following vulnerability has been resolved: drm/ttm: Fix ttm_bo_swapout() infinite LRU walk on swapout failure When ttm_tt_swapout() fails, the current code calls ttm_resource_add_bulk_move() followed by ttm_resource_move_to_lru_tail() to restore the resource's bulk_move membership. However, ttm_resource_move_to_lru_tail() places the resource at the tail of the LRU list which, relative to the walk cursor's hitch node (placed immediately after the resource when it was yielded), puts the resource *in front of the* the hitch. The next list_for_each_entry_continue() from the hitch finds the same resource again, causing an infinite loop. Fix by deferring del_bulk_move to the success path only. On the success path, TTM_TT_FLAG_SWAPPED has just been set by ttm_tt_swapout() but the resource is still tracked in the bulk_move range, so ttm_resource_del_bulk_move()'s !ttm_resource_unevictable() guard would incorrectly skip the removal. Introduce ttm_resource_del_bulk_move_unevictable() which bypasses that guard.

2 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

CVE-2026-52965 addresses a logic error in the TTM (Translation Table Maps) buffer object swap-out mechanism within the Linux DRM subsystem. Specifically, when ttm_tt_swapout() fails during a memory reclamation operation, the error handling path calls ttm_resource_add_bulk_move() followed by ttm_resource_move_to_lru_tail(). The latter function repositions the resource at the LRU (Least Recently Used) list tail, which places it in front of the walk cursor's hitch node—the bookmark used to resume iteration. Consequently, the next list_for_each_entry_continue() invocation re-discovers the same resource, creating an infinite loop. The patch defers bulk_move deletion to the success path and introduces ttm_resource_del_bulk_move_unevictable() to properly handle resources marked TTM_TT_FLAG_SWAPPED while still enrolled in bulk_move tracking.

Business impact

An attacker with local system access could trigger this bug through graphics operations or memory pressure scenarios, causing a denial of service via kernel hang or crash. Systems relying on GPU acceleration for workloads—rendering, compute, or AI/ML tasks—would experience service disruption. For organizations running graphics-intensive applications or virtual desktop infrastructure with GPU passthrough, this vulnerability could impact availability and user productivity. The attack requires local privilege (CWE-835: infinite loop vulnerability) but does not enable data theft or system compromise.

Affected systems

The Linux kernel's DRM/TTM subsystem is affected across all maintained branches that include the vulnerable code path. This impacts systems with GPU hardware that use the open-source DRM stack: AMD GPUs (via amdgpu), NVIDIA GPUs (via nouveau), Intel GPUs (via i915), and other DRM-dependent accelerators. The vulnerability does not affect systems without GPU or graphics acceleration, nor does it affect Windows, macOS, or other non-Linux kernels. Verify your specific kernel version and configuration against the upstream Linux kernel advisory for exact affected versions.

Exploitability

Exploitability is moderate. The vulnerability requires local code execution with unprivileged user privileges (PR:L per CVSS vector), meaning an authenticated local attacker can trigger the bug. It is not remotely exploitable. The bug is triggered through graphics subsystem calls or memory reclamation under certain conditions, making it non-trivial to exploit reliably but feasible for an attacker with shell access. No public exploit code is known at this time, and the vulnerability is not listed on the CISA KEV catalog, indicating it is not yet under active exploitation in the wild.

Remediation

Apply the latest stable Linux kernel patch that includes the fix for ttm_bo_swapout() error handling. This involves updating to a patched kernel version—verify the specific version numbers through your Linux distribution's security advisories or upstream kernel.org. For enterprises managing kernel deployments, coordinate patching with your standard change management process, prioritizing systems with GPU workloads or graphics-intensive applications. Interim mitigation is limited; restricting local user access reduces attack surface but does not eliminate the vulnerability in existing code.

Patch guidance

Obtain the fix from your Linux distribution's security updates (Red Hat, Debian, Ubuntu, SUSE, etc.) or directly from kernel.org. The patch modifies ttm_bo_swapout() to defer ttm_resource_del_bulk_move() calls to the success path only and introduces ttm_resource_del_bulk_move_unevictable() helper function. Test the patched kernel in a non-production environment first, especially if you run GPU-accelerated workloads, to ensure driver stability and performance. Kernel patches typically require a system reboot to take effect.

Detection guidance

Monitor system logs for repeated kernel warnings or BUG messages related to DRM/TTM or LRU list operations. Check for kernel panics or hangs coinciding with graphics operations or memory pressure events. On affected systems, dmesg logs may show TTM-related stack traces or deadlock warnings. If you have instrumentation in place (e.g., kprobes, eBPF), track calls to ttm_bo_swapout() that result in memory page-out failures followed by LRU re-traversal. Network-based detection is not feasible; focus on host-level observation during graphics workload execution or memory reclamation cycles.

Why prioritize this

Prioritize this patch for systems running GPU workloads or using graphics acceleration in production. Although the CVSS score is medium (5.5) and exploitability requires local access, the impact (denial of service via infinite loop) can render graphics-dependent services unavailable. Organizations running virtual desktop infrastructure, GPU compute clusters, rendering farms, or AI/ML inference platforms should treat this as high priority. For general-purpose servers without GPU, this is lower priority but should still be included in regular kernel maintenance cycles.

Risk score, explained

CVSS 3.1 score of 5.5 (MEDIUM) reflects: local attack vector (AV:L), low complexity (AC:L), low privilege requirement (PR:L), no user interaction (UI:N), unchanged scope (S:U), no confidentiality or integrity impact (C:N/I:N), and high availability impact (A:H). The score appropriately reflects the denial-of-service nature of the bug—it causes system hang or crash but does not leak data or enable privilege escalation. The absence from the CISA KEV catalog indicates it is not yet prioritized as a critical active threat but should not be dismissed given its reliable trigger conditions under GPU memory pressure.

Frequently asked questions

Can this vulnerability be exploited remotely?

No. The vulnerability requires local code execution with user-level privileges. Remote exploitation is not possible.

Does this affect systems without GPU hardware?

No. This bug is specific to the DRM/TTM graphics memory management subsystem. Systems without GPU acceleration or discrete graphics are not affected.

What happens if this bug is triggered?

The kernel enters an infinite loop while walking the LRU (Least Recently Used) memory list, causing the system to hang or crash. Applications and services depending on graphics acceleration will be disrupted.

Is there a workaround if I cannot patch immediately?

Practical workarounds are limited. Reducing graphics workload or restricting local user access can lower risk, but do not eliminate the vulnerability. Patching is the recommended remediation.

This analysis is based on publicly available vulnerability data as of the publication date. CVSS scores, affected versions, and patch details are derived from vendor advisories and kernel.org. Always verify specific affected versions and patch compatibility with your system configuration and distribution. This vulnerability analysis does not constitute security advice for your specific infrastructure; consult your security team and vendor advisories before deploying patches. SEC.co makes no warranty regarding the completeness or accuracy of this analysis, and organizations remain responsible for their own vulnerability management and remediation decisions. Source: NVD (public-domain), retrieved 2026-07-30. Analysis generated by SEC.co (claude-haiku-4-5).