CVE-2026-43271

In the Linux kernel, the following vulnerability has been resolved: md-cluster: fix NULL pointer dereference in process_metadata_update The function process_metadata_update() blindly dereferences the 'thread' pointer (acquired via rcu_dereference_protected) within the wait_event() macro. While the code comment states "daemon thread must exist", there is a valid race condition window during the MD array startup sequence (md_run): 1. bitmap_load() is called, which invokes md_cluster_ops->join(). 2. join() starts the "cluster_recv" thread (recv_daemon). 3. At this point, recv_daemon is active and processing messages. 4. However, mddev->thread (the main MD thread) is not initialized until later in md_run(). If a METADATA_UPDATED message is received from a remote node during this specific window, process_metadata_update() will be called while mddev->thread is still NULL, leading to a kernel panic. To fix this, we must validate the 'thread' pointer. If it is NULL, we release the held lock (no_new_dev_lockres) and return early, safely ignoring the update request as the array is not yet fully ready to process it.
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:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*

History

11 Nov 2026, 23:10

Type Values Removed Values Added
Summary
  • (es) En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: md-cluster: corrección de desreferencia de puntero NULL en process_metadata_update La función process_metadata_update() desreferencia ciegamente el puntero ’thread’ (adquirido a través de rcu_dereference_protected) dentro de la macro wait_event(). Aunque el comentario del código indica ’el hilo demonio debe existir’, existe una ventana de condición de carrera válida durante la secuencia de inicio del array MD (md_run): 1. Se llama a bitmap_load(), lo que invoca a md_cluster_ops -> join(). 2. join() inicia el hilo ’cluster_recv’ (recv_daemon). 3. En este punto, recv_daemon está activo y procesando mensajes. 4. Sin embargo, mddev -> thread (el hilo MD principal) no se inicializa hasta más tarde en md_run(). Si se recibe un mensaje METADATA_UPDATED de un nodo remoto durante esta ventana específica, process_metadata_update() será llamada mientras mddev -> thread sigue siendo NULL, lo que lleva a un pánico del kernel. Para solucionar esto, debemos validar el puntero ’thread’. Si es NULL, liberamos el bloqueo mantenido (no_new_dev_lockres) y retornamos anticipadamente, ignorando de forma segura la solicitud de actualización ya que el array aún no está completamente listo para procesarla.

30 Oct 2026, 13:18

Type Values Removed Values Added
References
  • () https://git.kernel.org/stable/c/b65ea893290056bee380d0c8eeb47797c2bcb311 -

Information

Published : 2026-05-06 12:16

Updated : 2026-11-11 23:10


NVD link : CVE-2026-43271

Mitre link : CVE-2026-43271

CVE.ORG link : CVE-2026-43271


JSON object : View

Products Affected

linux

  • linux_kernel
CWE
CWE-476

NULL Pointer Dereference