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

drm/nouveau/clk: fix list cursor use after loop in nvkm_clk_ustate_update

If list_for_each_entry() exits without hitting a break then "pstate" is
not a valid pstate pointer. Introduce a "found" variable instead.

The check is reachable from userspace: nvkm_clk_ustate_update() takes the
pstate id straight from the 'pstate' debugfs file, so requesting an id
that is not in clk->states - or any id at all when the perf tables are
broken and the list is empty - makes the pstate->pstate != req test
dereference the list head cast to a struct nvkm_pstate, which is an
out-of-bounds read.

[Francesco: rebased on drm-misc-next, expanded the commit message]
Published: 2026-10-18
Score: 4.4 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Out-of-Bounds Kernel Read
Action: Patch
AI Analysis

Impact

The vulnerability resides in the Nouveau driver of the Linux kernel. A loop that walks the kernel’s list of clock states can exit without setting a flag when the requested state ID is not present. This results in the code later dereferencing the list head as an nvkm_pstate structure, producing an out-of-bounds read. The flaw allows a kernel to expose arbitrary data from its address space, potentially leaking sensitive information.

Affected Systems

All Linux kernel distributions that ship the unpatched Nouveau driver are affected. The issue exists in kernel builds that use the original nvkm_clk_ustate_update implementation before the patch adding the "found" variable. The trace is reachable from userspace through the debugfs pstate interface under /sys/kernel/debug/drm/nouveau, so any system exposing that file to local users or services is at risk.

Risk and Exploitability

A local attacker with write access to the debugfs pstate file can supply an arbitrary index, triggering the out‑of‑bounds read. The CVSS score is 4.4 and the EPSS score is < 1%, indicating low severity and a very low likelihood that the exploit will be used. The vulnerability is not listed in the CISA KEV catalog. The attack requires local access and can be mitigated by restricting the file’s write permissions or removing the debugfs mount. No remote exploitation path is described in the data.

Generated by OpenCVE AI on October 23, 2026 at 06:44 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to the version that includes the Nouveau driver patch adding the "found" variable check
  • Restrict write permissions on /sys/kernel/debug/drm/nouveau/.../pstate to privileged users only
  • Disable or unmount the debugfs filesystem on production systems where it is not needed
  • Audit debugfs accesses and monitor kernel logs for anomalous pstate writes

Generated by OpenCVE AI on October 23, 2026 at 06:44 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4850-1 linux-6.12 security update
Ubuntu USN Ubuntu USN USN-8961-1 Linux kernel vulnerabilities
History

Fri, 23 Oct 2026 00:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-20

Thu, 22 Oct 2026 12:30:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

cvssV3_1

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

threat_severity

Moderate


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

Type Values Removed Values Added
Weaknesses CWE-125
CWE-20

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/nouveau/clk: fix list cursor use after loop in nvkm_clk_ustate_update If list_for_each_entry() exits without hitting a break then "pstate" is not a valid pstate pointer. Introduce a "found" variable instead. The check is reachable from userspace: nvkm_clk_ustate_update() takes the pstate id straight from the 'pstate' debugfs file, so requesting an id that is not in clk->states - or any id at all when the perf tables are broken and the list is empty - makes the pstate->pstate != req test dereference the list head cast to a struct nvkm_pstate, which is an out-of-bounds read. [Francesco: rebased on drm-misc-next, expanded the commit message]
Title drm/nouveau/clk: fix list cursor use after loop in nvkm_clk_ustate_update
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-19T09:22:51.359Z

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

Link: CVE-2026-98623

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

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

Modified: 2026-10-19T10:19:26.460

Link: CVE-2026-98623

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-10-18T00:00:00Z

Links: CVE-2026-98623 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-23T06:45:07Z

Weaknesses