CVE-2026-43271 PUBLISHED

md-cluster: fix NULL pointer dereference in process_metadata_update

Assigner: Linux
Reserved: 01.05.2026 Published: 06.05.2026 Updated: 06.05.2026

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.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to a61c1bc84c4a0f1e7c2fe55b0f43d7d94af4adf1 (excl.)
  • affected from 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to dec123825c1ed74d98fd5fc7571a851dea4f46ff (excl.)
  • affected from 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to 721599e837d3f4c0e6cc14da059612c017b6d3ec (excl.)
  • affected from 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to dceb5a843910004cb118148e267036104fc3ee43 (excl.)
  • affected from 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to f150e753cb8dd756085f46e86f2c35ce472e0a3c (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • unaffected from 6.6.128 to 6.6.* (incl.)
  • unaffected from 6.12.75 to 6.12.* (incl.)
  • unaffected from 6.18.16 to 6.18.* (incl.)
  • unaffected from 6.19.6 to 6.19.* (incl.)
  • unaffected from 7.0 to * (incl.)

References