CVE-2026-23467

In the Linux kernel, the following vulnerability has been resolved: drm/i915/dmc: Fix an unlikely NULL pointer deference at probe intel_dmc_update_dc6_allowed_count() oopses when DMC hasn't been initialized, and dmc is thus NULL. That would be the case when the call path is intel_power_domains_init_hw() -> {skl,bxt,icl}_display_core_init() -> gen9_set_dc_state() -> intel_dmc_update_dc6_allowed_count(), as intel_power_domains_init_hw() is called *before* intel_dmc_init(). However, gen9_set_dc_state() calls intel_dmc_update_dc6_allowed_count() conditionally, depending on the current and target DC states. At probe, the target is disabled, but if DC6 is enabled, the function is called, and an oops follows. Apparently it's quite unlikely that DC6 is enabled at probe, as we haven't seen this failure mode before. It is also strange to have DC6 enabled at boot, since that would require the DMC firmware (loaded by BIOS); the BIOS loading the DMC firmware and the driver stopping / reprogramming the firmware is a poorly specified sequence and as such unlikely an intentional BIOS behaviour. It's more likely that BIOS is leaving an unintentionally enabled DC6 HW state behind (without actually loading the required DMC firmware for this). The tracking of the DC6 allowed counter only works if starting / stopping the counter depends on the _SW_ DC6 state vs. the current _HW_ DC6 state (since stopping the counter requires the DC5 counter captured when the counter was started). Thus, using the HW DC6 state is incorrect and it also leads to the above oops. Fix both issues by using the SW DC6 state for the tracking. This is v2 of the fix originally sent by Jani, updated based on the first Link: discussion below. (cherry picked from commit 2344b93af8eb5da5d496b4e0529d35f0f559eaf0)
Configurations

Configuration 1 (hide)

OR cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc4:*:*:*:*:*:*

History

24 Jul 2026, 22:10

Type Values Removed Values Added
Summary
  • (es) En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta: drm/i915/dmc: Corrige una desreferencia de puntero NULL poco probable durante la sonda intel_dmc_update_dc6_allowed_count() falla (oops) cuando DMC no ha sido inicializado, y dmc es por lo tanto NULL. Ese sería el caso cuando la ruta de llamada es intel_power_domains_init_hw() -> {skl,bxt,icl}_display_core_init() -> gen9_set_dc_state() -> intel_dmc_update_dc6_allowed_count(), ya que intel_power_domains_init_hw() es llamado antes de intel_dmc_init(). Sin embargo, gen9_set_dc_state() llama a intel_dmc_update_dc6_allowed_count() condicionalmente, dependiendo de los estados DC actual y objetivo. Durante la sonda, el objetivo está deshabilitado, pero si DC6 está habilitado, la función es llamada, y un oops ocurre. Aparentemente es bastante improbable que DC6 esté habilitado durante la sonda, ya que no hemos visto este modo de fallo antes. También es extraño tener DC6 habilitado durante el arranque, ya que eso requeriría el firmware DMC (cargado por la BIOS); la carga del firmware DMC por parte de la BIOS y el controlador deteniendo / reprogramando el firmware es una secuencia mal especificada y, como tal, es poco probable que sea un comportamiento intencional de la BIOS. Es más probable que la BIOS esté dejando un estado HW DC6 habilitado de forma no intencional (sin cargar realmente el firmware DMC requerido para esto). El seguimiento del contador permitido de DC6 solo funciona si el inicio / detención del contador depende del estado DC6 _SW_ frente al estado DC6 _HW_ actual (ya que detener el contador requiere el contador DC5 capturado cuando se inició el contador). Por lo tanto, usar el estado HW DC6 es incorrecto y también conduce al oops mencionado. Corrige ambos problemas usando el estado SW DC6 para el seguimiento. Esta es la v2 de la corrección enviada originalmente por Jani, actualizada basándose en la primera discusión de Enlace: a continuación. (seleccionado de la revisión 2344b93af8eb5da5d496b4e0529d35f0f559eaf0)

26 May 2026, 14:35

Type Values Removed Values Added
CWE CWE-476
First Time Linux
Linux linux Kernel
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 5.5
References () https://git.kernel.org/stable/c/0b35d11fbbcfd1079c8489282a341944228835e3 - () https://git.kernel.org/stable/c/0b35d11fbbcfd1079c8489282a341944228835e3 - Patch
References () https://git.kernel.org/stable/c/631317825d44283abfe7a8374f13a76ce2032bb8 - () https://git.kernel.org/stable/c/631317825d44283abfe7a8374f13a76ce2032bb8 - Patch
References () https://git.kernel.org/stable/c/ac57eb3b7d2ad649025b5a0fa207315f755ac4f6 - () https://git.kernel.org/stable/c/ac57eb3b7d2ad649025b5a0fa207315f755ac4f6 - Patch
CPE cpe:2.3:o:linux:linux_kernel:7.0:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc4:*:*:*:*:*:*

03 Apr 2026, 16:16

Type Values Removed Values Added
New CVE

Information

Published : 2026-04-03 16:16

Updated : 2026-07-24 22:10


NVD link : CVE-2026-23467

Mitre link : CVE-2026-23467

CVE.ORG link : CVE-2026-23467


JSON object : View

Products Affected

linux

  • linux_kernel
CWE
CWE-476

NULL Pointer Dereference