Skip to main content

Linux Kernel CVE-2026-98166

| EUVDEUVD-2026-93094 HIGH
2026-10-06 Linux GHSA-62xr-3qf5-9qpj
7.8
CVSS 3.1 · Vendor: Linux
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Local user triggers hibernation/swapout cycle
  2. Delivery
    TTM leaves swapped resource in bulk_move
  3. Exploit
    Freed range endpoint dangles on manager LRU
  4. Execution
    Later LRU walk dereferences stale cursor
  5. Impact
    Use-after-free crashes kernel

Vulnerability Assessment

Exploitation Conditions

Requires an affected Linux kernel (regression present from commit b2ed01e7ad3d, i.e. roughly 7.0.10 up to before 7.1 and related stable backports such as Ubuntu 7.0.0-31) running a drm/ttm-backed GPU driver - demonstrated on an AMD Phoenix APU (gfx1103) using amdgpu. The fault is triggered when TTM swaps out populated graphics memory, in practice via suspend-then-hibernate, memory pressure, or BO teardown at process exit/reboot following a hibernation. Limiting factors: local presence and local activity are required (AV:L); the bug is race/timing-dependent (crashed only 5 of 18 hibernation cycles, manifesting minutes to hours later), it depends on an active GPU workload with bulk_move resources, and hibernation/swapout is typically needed - it is not remotely reachable and not attacker-controllable toward a deterministic primitive.

Impact

Signals point to a genuine but low-urgency local kernel reliability bug rather than a high-value exploitation target. The provided CVSS 3.1 vector (AV:L/AC:L/PR:L/UI:N, C:H/I:H/A:H → 7.8 HIGH) reflects a kernel use-after-free, which in principle can yield memory corruption, but the mechanism described is a dangling bulk_move cursor triggered by TTM swapout during hibernation/suspend - not an attacker-steered primitive. EPSS is very low (0.20%, 9th percentile) and there is no KEV listing and no public exploit, all consistent with a crash/stability defect rather than a weaponized flaw. Note a tension worth flagging: the CVSS assigns C:H/I:H/A:H and AC:L, yet the report characterizes the fault as a timing-dependent crash that manifested in only 5 of 18 hibernation cycles and surfaces as WARNs, list corruption, or NULL dereference - behavior that reads as denial-of-service (matching the 'Denial Of Service' tag) with a race condition (arguably AC:H), not reliable confidentiality/integrity compromise. Treat the high CVSS as an upper-bound theoretical rating; real-world priority is patch-on-schedule, not emergency.

Exploit ScenarioDerived

A low-privileged local user (or normal desktop workload) on an affected AMD-GPU Linux system triggers graphics memory swapout via a suspend-then-hibernate cycle; TTM fails to remove the swapped-out resource from its BO's bulk_move range, leaving a cursor pointing at freed memory. Minutes to hours later - during a subsequent LRU walk, at process exit, or on reboot - the dangling cursor is dereferenced, causing a use-after-free that crashes the kernel. No public exploit exists; the defect is timing-dependent and demonstrated as a stability crash rather than a controlled code-execution chain.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 07, 2026

Use-after-free in the Linux kernel's drm/ttm graphics memory manager (a regression introduced by commit b2ed01e7ad3d, present in roughly 7.0.10 through 7.1 and in stable backports such as Ubuntu 7.0.0-31) allows a locally authenticated user with an active GPU workload to crash the kernel minutes to hours after a swapout event. Because ttm_bo_swapout_cb() skips the bulk_move bookkeeping on successful swapout, a swapped-out resource stays on its buffer object's bulk_move range and on the manager LRU while being unevictable; when it is later freed or the BO leaves the bulk_move, ttm_resource_del_bulk_move() skips it due to its unevictable guard, leaving a dangling cursor that the next ttm_lru_bulk_move_tail() or ttm_resource_add_bulk_move() dereferences. Exploitation requires local presence, an affected AMD/drm-ttm system, and timing-dependent hibernation or memory-pressure conditions (the reporter observed crashes in only 5 of 18 hibernation cycles), and no public exploit code has been identified at time of analysis; EPSS is 0.20% (9th percentile), signalling low near-term exploitation likelihood.

RemediationAI

Vendor-released patch: update to a kernel containing commit 1169fe8c11ca45e3f91d59a73eb271d0ca8a7fb0 (stable backport) or 3db7d7d583419f7b1f2e141e36418802dbb25cf8 (mainline), i.e. Linux 7.2.8 / 7.3-rc4 or the corresponding 7.0.y/7.1 stable release; the corrected logic restores the ttm_resource_del_bulk_move_unevictable()/ttm_resource_move_to_lru_tail() pair whenever ttm_tt_swapout() returns a positive page count, so the removal happens for every swapped-out resource. Where patching is not immediately possible, the only meaningful compensating controls are to avoid hibernation and suspend-then-hibernate on affected kernels (the demonstrated trigger and the dominant practical failure path; trade-off: loses power-saving and session-persistence functionality), to reduce graphics memory pressure that forces TTM swapout -- for example by limiting GPU workload or lowering the resolution/VRAM footprint of amdgpu applications -- and to reboot or restart the GPU workload after any resume from hibernation rather than continuing to run long sessions, since the dangling bulk_move cursor manifests minutes to hours later at process exit or reboot; there is no configuration switch to disable drm/ttm bulk_move for amdgpu VM BOs, so disabling the GPU driver or avoiding amdgpu in favour of non-TTM drivers is the only complete functional workaround and is generally impractical on affected AMD hardware. Patch availability is confirmed by the vendor (Linux), and reference material is at https://nvd.nist.gov/vuln/detail/CVE-2026-98166 and https://vuldb.com/vuln/414022.

Affected VersionsENISA

Linux 7.1
Linux 0124a09e3e5f5f6080efe9663b27af27933f8382
Linux b2ed01e7ad3de80333e9b962a44024b094bc0b2b <1169fe8c11ca45e3f91d59a73eb271d0ca8a7fb0
Linux 7.0.10 <7.1
Linux patch: 7.2.8
Linux patch: 7.3-rc4
Linux b2ed01e7ad3de80333e9b962a44024b094bc0b2b <3db7d7d583419f7b1f2e141e36418802dbb25cf8
Linux patch: 0

Affected Packages

euvd linux fix: 7.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The affected subsystem is drm/ttm, the Translation Table Manager (TTM) memory manager used by DRM/KMS drivers -- notably amdgpu -- to manage buffer object (BO) placement and eviction across VRAM, GTT and system memory. TTM tracks evictable resources in manager LRUs and, for BOs with bulk_move enabled (used by the amdgpu VM for page-table BOs), in per-BO bulk_move ranges with first/last cursor endpoints. ttm_tt_swapout() returns the number of pages swapped out on success and a negative errno on failure, and never returns zero for a populated ttm. Commit b2ed01e7ad3d ('drm/ttm: Fix ttm_bo_swapout() infinite LRU walk on swapout failure') guarded the ttm_resource_del_bulk_move_unevictable()/ttm_resource_move_to_lru_tail() pair with 'if (!ret)', which is false on every successful swapout, whereas the analogous shrinker fix 1d59f36e95f7 correctly tested 'lret > 0'. The root-cause class is a use-after-free/dangling-pointer defect (CWE-416 in common taxonomy; the upstream record lists CWE: N/A): the stale endpoint in pos->first/pos->last points at freed memory once ttm_resource_free() or ttm_bo_set_bulk_move() (via amdgpu_vm_bo_del()) runs, and the next bulk-move list operation dereferences it, producing a reservation-object WARN in ttm_lru_bulk_move_add(), 'list_del corruption' in ttm_resource_move_to_lru_tail(), or a NULL dereference in ttm_resource_manager_next(). The reporter reproduced this on an AMD Phoenix APU (ASUS UM3406GA, gfx1103) running suspend-then-hibernate on a 7.0.y stable kernel with the backport (Ubuntu 7.0.0-31), profiling 336 ttm_tt_swapout() calls and zero ttm_resource_del_bulk_move_unevictable() calls in a single failed cycle. CPE data identifies the generic linux:linux product; the practical blast radius is limited to systems using drm/ttm-backed GPU drivers, particularly AMD amdgpu hardware.

Know when Amd gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (Linux) PRIMARY 7.8 HIGH
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 7.0 HIGH

Local kernel use-after-free reachable only through timing-dependent hibernation/swapout races, so AV:L and AC:H; a low-privileged local user can trigger the path, so PR:L.

3.1 AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:L/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (Linux).

CVSS VectorVendor: Linux

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

4
CVSS changed
Oct 07, 2026 - 07:22 NVD
7.8 (HIGH)
Patch available
Oct 06, 2026 - 10:02 EUVD
CVE Published
Oct 06, 2026 - 08:44 cve.org
UNKNOWN (no severity yet)
CVE Published
Oct 06, 2026 - 08:44 cve.org
HIGH 7.8

DescriptionCVE.org

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

drm/ttm: fix swapped-out resources never leaving their bulk_move range

ttm_tt_swapout() returns the number of pages swapped out on success and a negative error code on failure; for a populated ttm it never returns zero. Commit b2ed01e7ad3d ("drm/ttm: Fix ttm_bo_swapout() infinite LRU walk on swapout failure") moved the bulk_move bookkeeping in ttm_bo_swapout_cb() under "if (!ret)", so the ttm_resource_del_bulk_move_unevictable() / ttm_resource_move_to_lru_tail() pair is now skipped on every successful swapout. The equivalent change for the shrinker in commit 1d59f36e95f7 ("drm/ttm: Fix ttm_bo_shrink() infinite LRU walk on backup failure") tests "lret > 0", which is what was intended here as well.

Before b2ed01e7ad3d the resource was taken off the bulk_move before the swapout; since then a swapped-out resource stays inside its BO's bulk_move range (and on the manager LRU) although it is unevictable. When it is later freed or the BO leaves the bulk_move (ttm_resource_free(), ttm_bo_set_bulk_move() via amdgpu_vm_bo_del()), ttm_resource_del_bulk_move() skips it because of its !ttm_resource_unevictable() guard, so a range endpoint in pos->first / pos->last is left pointing at freed memory. The next ttm_lru_bulk_move_tail() or ttm_resource_add_bulk_move() on that cursor is a use-after-free, seen as the resv WARN in ttm_lru_bulk_move_add(), "list_del corruption" in ttm_resource_move_to_lru_tail() or a NULL dereference in ttm_resource_manager_next() -- minutes to hours after a hibernation, or at process exit / reboot following one. Samuel Ainsworth's analysis of drm/amd issue 5387 (see Link) identified the dangling cursor; the missing removal at swapout time is the reason it dangles.

Testing the condition for success restores the removal. On an AMD Phoenix APU (ASUS UM3406GA, gfx1103) running suspend-then-hibernate on a 7.0.y stable kernel carrying the backport (Ubuntu 7.0.0-31) the bug crashed 5 of 18 hibernation cycles; a function profile of one hibernation showed 336 ttm_tt_swapout() calls and zero ttm_resource_del_bulk_move_unevictable() calls. With this change the removal happens for every swapped-out resource and 12 further cycles were clean.

Executive ViewAI

Why It Matters

A use-after-free regression in the Linux kernel's DRM/TTM graphics memory manager can crash affected AMD GPU systems, causing unplanned downtime for GPU workstations, virtual desktop infrastructure, and Linux servers running kernels from roughly 7.0.10 through 7.1, including stable backports such as Ubuntu 7.0.0-31. Triggering it requires a local user already present on the machine, an active GPU workload, and memory-pressure or hibernation conditions that only reproduced in a minority of observed cycles, so the exposure is concentrated in shared, GPU-accelerated environments rather than remote or internet-facing attack paths; no public exploit code has been identified at time of analysis. Because patch availability is confirmed, this is best handled as a scheduled kernel remediation and change-management priority rather than an emergency response.

Business Impact: Medium
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 91% exploitable
Prevalence
Ubiquitous
Linux kernel; but drm/ttm AMD-GPU hibernation path mainly hits desktops/workstations
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact
Medium

Priority Score

39
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +39
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

More in Amd

View all
CVE-2021-22986 CRITICAL POC
9.8 Mar 31

On BIG-IP versions 16.0.x before 16.0.1.1, 15.1.x before 15.1.2.1, 14.1.x before 14.1.4, 13.1.x before 13.1.3.6, and 12.

CVE-2026-46174 HIGH POC
8.8 May 28

Local privilege escalation and information disclosure in the Linux kernel on AMD Zen2 CPUs allows low-privileged users t

CVE-2020-6103 CRITICAL POC
9.9 Jul 20

An exploitable code execution vulnerability exists in the Shader functionality of AMD Radeon DirectX 11 Driver atidxx64.

CVE-2020-6102 CRITICAL POC
9.9 Jul 20

An exploitable code execution vulnerability exists in the Shader functionality of AMD Radeon DirectX 11 Driver atidxx64.

CVE-2020-6101 CRITICAL POC
9.9 Jul 20

An exploitable code execution vulnerability exists in the Shader functionality of AMD Radeon DirectX 11 Driver atidxx64.

CVE-2020-6100 CRITICAL POC
9.9 Jul 20

An exploitable memory corruption vulnerability exists in AMD atidxx64.dll 26.20.15019.19000 graphics driver. Rated criti

CVE-2018-6546 CRITICAL POC
9.8 Apr 13

plays_service.exe in the plays.tv service before 1.27.7.0, as distributed in AMD driver-installation packages and Gaming

CVE-2021-3653 HIGH POC
8.8 Sep 29

A flaw was found in the KVM's AMD code for supporting SVM nested virtualization. Rated high severity (CVSS 8.8), this vu

CVE-2020-12138 HIGH POC
8.8 Apr 27

AMD ATI atillk64.sys 5.11.9.0 allows low-privileged users to interact directly with physical memory by calling one of se

CVE-2019-5098 HIGH POC
8.6 Dec 05

An exploitable out-of-bounds read vulnerability exists in AMD ATIDXX64.DLL driver, version 26.20.13001.29010. Rated high

CVE-2015-7724 HIGH POC
7.8 Jun 07

AMD fglrx-driver before 15.9 allows local users to gain privileges via a symlink attack. Rated high severity (CVSS 7.8),

CVE-2015-7723 HIGH POC
7.8 Jun 07

AMD fglrx-driver before 15.7 allows local users to gain privileges via a symlink attack. Rated high severity (CVSS 7.8),

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy