CVE-2024-43914 Information
Description
In the Linux kernel the following vulnerability has been resolved:
md/raid5: avoid BUG_ON() while continue reshape after reassembling
Currently mdadm support –revert-reshape to abort the reshape while reassembling as the test 07revert-grow. However following BUG_ON() can be triggerred by the test:
kernel BUG at drivers/md/raid5.c:6278!
invalid opcode: 0000 [1] PREEMPT SMP PTI
irq event stamp: 158985
CPU: 6 PID: 891 Comm: md0_reshape Not tainted 6.9.0-03335-g7592a0b0049a 94
RIP: 0010:reshape_request+0x3f1/0xe60
Call Trace:
Root cause is that –revert-reshape update the raid_disks from 5 to 4 while reshape position is still set and after reassembling the array reshape position will be read from super block then during reshape the checking of ‘writepos’ that is caculated by old reshape position will fail.
Fix this panic the easy way first by converting the BUG_ON() to WARN_ON() and stop the reshape if checkings fail.
Noted that mdadm must fix –revert-shape as well and probably md/raid should enhance metadata validation as well however this means reassemble will fail and there must be user tools to fix the wrong metadata.
Reference
https://git.kernel.org/stable/c/2c92f8c1c456d556f15cbf51667b385026b2e6a0 https://git.kernel.org/stable/c/6b33c468d543f6a83de2d61f09fec74b27e19fd2 https://git.kernel.org/stable/c/c384dd4f1fb3b14a2fd199360701cc163ea88705 https://git.kernel.org/stable/c/bf0ff69a42a3d2d46876d0514ecf13dffc516666 https://git.kernel.org/stable/c/3b33740c1750a39e046339ff9240e954f0156707 https://git.kernel.org/stable/c/775a9ba16c9ffe98fe54ebf14e55d5660f2bf600 https://git.kernel.org/stable/c/4811d6e5d9f4090c3e0ff9890eb24077108046ab https://git.kernel.org/stable/c/305a5170dc5cf3d395bb4c4e9239bca6d0b54b49
Share on: