CVE-2023-52981

In the Linux kernel, the following vulnerability has been resolved: drm/i915: Fix request ref counting during error capture & debugfs dump When GuC support was added to error capture, the reference counting around the request object was broken. Fix it up. The context based search manages the spinlocking around the search internally. So it needs to grab the reference count internally as well. The execlist only request based search relies on external locking, so it needs an external reference count but within the spinlock not outside it. The only other caller of the context based search is the code for dumping engine state to debugfs. That code wasn't previously getting an explicit reference at all as it does everything while holding the execlist specific spinlock. So, that needs updaing as well as that spinlock doesn't help when using GuC submission. Rather than trying to conditionally get/put depending on submission model, just change it to always do the get/put. v2: Explicitly document adding an extra blank line in some dense code (Andy Shevchenko). Fix multiple potential null pointer derefs in case of no request found (some spotted by Tvrtko, but there was more!). Also fix a leaked request in case of !started and another in __guc_reset_context now that intel_context_find_active_request is actually reference counting the returned request. v3: Add a _get suffix to intel_context_find_active_request now that it grabs a reference (Daniele). v4: Split the intel_guc_find_hung_context change to a separate patch and rename intel_context_find_active_request_get to intel_context_get_active_request (Tvrtko). v5: s/locking/reference counting/ in commit message (Tvrtko) (cherry picked from commit 3700e353781e27f1bc7222f51f2cc36cbeb9b4ec)
Configurations

Configuration 1 (hide)

OR cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.2:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.2:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.2:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.2:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.2:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.2:rc6:*:*:*:*:*:*

History

28 Oct 2025, 18:22

Type Values Removed Values Added
First Time Linux linux Kernel
Linux
CWE NVD-CWE-Other
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 5.5
Summary
  • (es) En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: drm/i915: Arreglar el conteo de referencias de solicitud durante la captura de errores y el volcado de debugfs Cuando se agregó soporte para GuC a la captura de errores, el conteo de referencias alrededor del objeto de solicitud se rompió. Arréglenlo. La búsqueda basada en contexto administra el bloqueo de giro alrededor de la búsqueda internamente. Por lo tanto, también necesita obtener el conteo de referencias internamente. La búsqueda basada en solicitud solo de execlist se basa en el bloqueo externo, por lo que necesita un conteo de referencias externo pero dentro del bloqueo de giro, no fuera de él. El único otro llamador de la búsqueda basada en contexto es el código para volcar el estado del motor a debugfs. Ese código anteriormente no obtenía una referencia explícita en absoluto, ya que hace todo mientras mantiene el bloqueo de giro específico de execlist. Por lo tanto, eso necesita actualizarse, ya que el bloqueo de giro no ayuda cuando se usa el envío de GuC. En lugar de intentar obtener/poner condicionalmente dependiendo del modelo de envío, simplemente cámbielo para que siempre haga obtener/poner. v2: Documentar explícitamente agregar una línea en blanco adicional en algún código denso (Andy Shevchenko). Se corrigen varias posibles desreferencias de puntero nulo en caso de no encontrarse ninguna solicitud (algunas detectadas por Tvrtko, ¡pero había más!). También se corrigen una solicitud filtrada en caso de !started y otra en __guc_reset_context, ahora que intel_context_find_active_request cuenta las referencias de la solicitud devuelta. v3: Se añade el sufijo _get a intel_context_find_active_request ahora que obtiene una referencia (Daniele). v4: Se divide el cambio de intel_guc_find_hung_context en un parche independiente y se cambia el nombre de intel_context_find_active_request_get a intel_context_get_active_request (Tvrtko). v5: s/locking/reference counting/ en el mensaje de confirmación (Tvrtko) (seleccionado del commit 3700e353781e27f1bc7222f51f2cc36cbeb9b4ec).
References () https://git.kernel.org/stable/c/86d8ddc74124c3fdfc139f246ba6da15e45e86e3 - () https://git.kernel.org/stable/c/86d8ddc74124c3fdfc139f246ba6da15e45e86e3 - Patch
References () https://git.kernel.org/stable/c/9467397f417dd7b5d0db91452f0474e79716a527 - () https://git.kernel.org/stable/c/9467397f417dd7b5d0db91452f0474e79716a527 - Patch
CPE cpe:2.3:o:linux:linux_kernel:6.2:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.2:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.2:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.2:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.2:rc6:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.2:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*

27 Mar 2025, 17:15

Type Values Removed Values Added
New CVE

Information

Published : 2025-03-27 17:15

Updated : 2025-10-28 18:22


NVD link : CVE-2023-52981

Mitre link : CVE-2023-52981

CVE.ORG link : CVE-2023-52981


JSON object : View

Products Affected

linux

  • linux_kernel