CVE-2026-98623 PUBLISHED

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

Assigner: Linux
Reserved: 25.09.2026 Published: 18.10.2026 Updated: 18.10.2026

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]

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from 7c856522069755ab9d163a24ac332cd3cb35fe30 to db5dd9f47b4df1be322f498d846e9a82940a7390 (excl.)
  • affected from 7c856522069755ab9d163a24ac332cd3cb35fe30 to 9d550924961f61a491dd95359c63494fa8a23d9f (excl.)
  • affected from 7c856522069755ab9d163a24ac332cd3cb35fe30 to 492e9cfa12f35f7946ea1b78a19f1f9337d62248 (excl.)
  • affected from 7c856522069755ab9d163a24ac332cd3cb35fe30 to a867abcfa85ab487066c3d3008a1ba905da04113 (excl.)
  • affected from 7c856522069755ab9d163a24ac332cd3cb35fe30 to 5315c7bacfe274ddfe649d9556e9a341ffa812da (excl.)
  • affected from 7c856522069755ab9d163a24ac332cd3cb35fe30 to 0d096a7f7d79207490858dde731b16da5337e90c (excl.)
  • affected from 7c856522069755ab9d163a24ac332cd3cb35fe30 to 391517da7fd54ae40e4a7fe1cc696217343b0061 (excl.)
  • affected from 7c856522069755ab9d163a24ac332cd3cb35fe30 to aff09d9e37e02dc60bde79035ac15b136d602259 (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 3.13 is affected
  • unaffected from 0 to 3.13 (excl.)
  • unaffected from 5.10.271 to 5.10.* (incl.)
  • unaffected from 5.15.222 to 5.15.* (incl.)
  • unaffected from 6.1.189 to 6.1.* (incl.)
  • unaffected from 6.6.158 to 6.6.* (incl.)
  • unaffected from 6.12.112 to 6.12.* (incl.)
  • unaffected from 6.18.55 to 6.18.* (incl.)
  • unaffected from 7.2.9 to 7.2.* (incl.)
  • unaffected from 7.3-rc5 to * (incl.)

References