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: n/a
EPSS: n/a
KEV: No
Impact: Out-of-Bounds Kernel Read
Action: Patch
AI Analysis

Impact

The vulnerability exists in the Nouveau DRM driver of the Linux kernel. When an attacker writes a value to the debugfs 'pstate' file, the kernel passes that value to nvkm_clk_ustate_update, which walks an internal list of clock states. If the supplied identifier is not present in the list, the loop ends without setting a flag and the code later dereferences the list head as an nvkm_pstate, performing an out-of-bounds read. This flaw causes the kernel to inadvertently expose arbitrary data from its address space, potentially leaking sensitive information or facilitating privilege escalation.

Affected Systems

All Linux kernel distributions that ship the unpatched Nouveau driver are affected. The flaw exists in any kernel version built with the old nvkm_clk_ustate_update implementation, before the commit that introduces the "found" variable. Systems that expose the /sys/kernel/debug/drm/nouveau/... pstate interface to local users or services are at risk; the vulnerability is not triggered by remote input but by local write access to debugfs.

Risk and Exploitability

A local attacker with write access to the debugfs pstate file can supply an arbitrary index, causing the kernel to perform an out-of-bounds read that may disclose kernel memory and could be leveraged to elevate privileges. The flaw is not currently listed in the CISA KEV catalog, and no exploitation probability is supplied by the CVE data. The potential for information disclosure suggests a high impact, contingent on the attacker’s ability to craft the exploit locally.

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

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade to the latest Linux kernel that includes the Nouveau driver patch adding the "found" variable check.
  • Restrict write permissions to the /sys/kernel/debug/drm/nouveau/... pstate file so that only privileged users can modify it.
  • Disable or unmount the debugfs filesystem on production systems where it is not required.
  • Monitor kernel logs for unexpected accesses to the pstate file and audit debugfs usage to detect potential exploitation.

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

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

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-18T15:19:44.744Z

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-18T16:17:15.237

Link: CVE-2026-98623

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-19T00:00:10Z

Weaknesses