Skip to content
OpenAdvisories
Unscored CVE-2024-39476 EUVD-2024-38001GHSA-wx95-q6gv-qpp4

md/raid5: fix deadlock that raid5d() wait for itself to clear MD_SB_CHANGE_PENDING

Published Jul 5, 2024 · Updated May 23, 2026 · Assigned by Linux

Vendor: Linux Product: Linux Package: kernel Package: linux Package: linux Package: linux-allwinner-5.19 Package: linux-aws Package: linux-aws-5.0 Package: linux-aws-5.11 Package: linux-aws-5.13 Package: linux-aws-5.15 Package: linux-aws-5.19 Package: linux-aws-5.3 Package: linux-aws-5.4 Package: linux-aws-5.8 Package: linux-aws-6.2 Package: linux-aws-6.5 Package: linux-aws-fips Package: linux-aws-hwe Package: linux-azure Package: linux-azure-4.15 Package: linux-azure-5.11 Package: linux-azure-5.13 Package: linux-azure-5.15 Package: linux-azure-5.19 Package: linux-azure-5.3 Package: linux-azure-5.4 Package: linux-azure-5.8 Package: linux-azure-6.2 Package: linux-azure-6.5 Package: linux-azure-edge Package: linux-azure-fde Package: linux-azure-fde-5.19 Package: linux-azure-fde-6.2 Package: linux-azure-fips Package: linux-bluefield Package: linux-fips Package: linux-gcp Package: linux-gcp-4.15 Package: linux-gcp-5.11 Package: linux-gcp-5.13 Package: linux-gcp-5.15 Package: linux-gcp-5.19 Package: linux-gcp-5.3 Package: linux-gcp-5.4 Package: linux-gcp-5.8 Package: linux-gcp-6.2 Package: linux-gcp-6.5 Package: linux-gcp-fips Package: linux-gke Package: linux-gke-4.15 Package: linux-gke-5.15 Package: linux-gke-5.4 Package: linux-gkeop Package: linux-gkeop-5.15 Package: linux-gkeop-5.4 Package: linux-hwe Package: linux-hwe-5.11 Package: linux-hwe-5.13 Package: linux-hwe-5.15 Package: linux-hwe-5.19 Package: linux-hwe-5.4 Package: linux-hwe-5.8 Package: linux-hwe-6.2 Package: linux-hwe-6.5 Package: linux-hwe-edge Package: linux-ibm Package: linux-ibm-5.15 Package: linux-ibm-5.4 Package: linux-intel-5.13 Package: linux-intel-iot-realtime Package: linux-intel-iotg Package: linux-intel-iotg-5.15 Package: linux-iot Package: linux-kvm Package: linux-lowlatency Package: linux-lowlatency-hwe-5.15 Package: linux-lowlatency-hwe-5.19 Package: linux-lowlatency-hwe-6.2 Package: linux-lowlatency-hwe-6.5 Package: linux-nvidia Package: linux-nvidia-6.2 Package: linux-nvidia-6.5 Package: linux-nvidia-tegra Package: linux-nvidia-tegra-5.15 Package: linux-nvidia-tegra-igx Package: linux-oem Package: linux-oem-5.10 Package: linux-oem-5.13 Package: linux-oem-5.14 Package: linux-oem-5.17 Package: linux-oem-5.6 Package: linux-oem-6.0 Package: linux-oem-6.1 Package: linux-oem-6.5 Package: linux-oracle Package: linux-oracle-5.0 Package: linux-oracle-5.11 Package: linux-oracle-5.13 Package: linux-oracle-5.15 Package: linux-oracle-5.3 Package: linux-oracle-5.4 Package: linux-oracle-5.8 Package: linux-oracle-6.5 Package: linux-raspi Package: linux-raspi-5.4 Package: linux-raspi-realtime Package: linux-raspi2 Package: linux-realtime Package: linux-riscv Package: linux-riscv-5.11 Package: linux-riscv-5.15 Package: linux-riscv-5.19 Package: linux-riscv-5.8 Package: linux-riscv-6.5 Package: linux-starfive-5.19 Package: linux-starfive-6.2 Package: linux-starfive-6.5 Package: linux-vmware Package: linux-xilinx-zynqmp Platform: Linux Ecosystem: Azure Linux Ecosystem: Debian Ecosystem: Ubuntu

Description

In the Linux kernel, the following vulnerability has been resolved:

md/raid5: fix deadlock that raid5d() wait for itself to clear MD_SB_CHANGE_PENDING

Xiao reported that lvm2 test lvconvert-raid-takeover.sh can hang with
small possibility, the root cause is exactly the same as commit
bed9e27baf52 ("Revert "md/raid5: Wait for MD_SB_CHANGE_PENDING in raid5d"")

However, Dan reported another hang after that, and junxiao investigated
the problem and found out that this is caused by plugged bio can't issue
from raid5d().

Current implementation in raid5d() has a weird dependence:

1) md_check_recovery() from raid5d() must hold 'reconfig_mutex' to clear
MD_SB_CHANGE_PENDING;
2) raid5d() handles IO in a deadloop, until all IO are issued;
3) IO from raid5d() must wait for MD_SB_CHANGE_PENDING to be cleared;

This behaviour is introduce before v2.6, and for consequence, if other
context hold 'reconfig_mutex', and md_check_recovery() can't update
super_block, then raid5d() will waste one cpu 100% by the deadloop, until
'reconfig_mutex' is released.

Refer to the implementation from raid1 and raid10, fix this problem by
skipping issue IO if MD_SB_CHANGE_PENDING is still set after
md_check_recovery(), daemon thread will be woken up when 'reconfig_mutex'
is released. Meanwhile, the hang problem will be fixed as well.

Affected products

VendorProductAffectedFixed
Linux Linux 4.19.262 – < 4.19.316, 5.4.220 – < 5.4.278, 5.10.150 – < 5.10.219, 5.15.75 – < 5.15.161, 4.14.296 – < 4.15, 5.19.17 – < 5.20, 6.0.3 – < 6.1, 6.1 4.19.316

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 linux 6.9.7-1 —
Debian 13 linux 6.9.7-1 —
Debian 12 linux 6.1.94-1 —
Debian 11 linux 5.10.221-1 DSA-5730-1
ReleasePackageFixed inAdvisory
Ubuntu Nvidia-BlueField 22.04 LTS linux-bluefield 5.15.0-1040.42 —
Ubuntu 22.04 LTS linux +1 5.15.0-102.112 —
Ubuntu 22.04 LTS linux-aws 5.15.0-1057.63 —
Ubuntu 22.04 LTS linux-azure 5.15.0-1060.69 —
Ubuntu 22.04 LTS linux-azure-fde 5.15.0-1060.69.1 —
Ubuntu 22.04 LTS linux-gcp 5.15.0-1055.63 —
Ubuntu 22.04 LTS linux-gke +1 5.15.0-1054.59 —
Ubuntu 22.04 LTS linux-gkeop 5.15.0-1040.46 —
Ubuntu 22.04 LTS linux-ibm +1 5.15.0-1050.53 —
Ubuntu 22.04 LTS linux-intel-iotg 5.15.0-1052.58 —
Ubuntu 22.04 LTS linux-nvidia 5.15.0-1048.48 —
Ubuntu 22.04 LTS linux-nvidia-tegra 5.15.0-1025.25 —
Ubuntu 22.04 LTS linux-nvidia-tegra-igx 5.15.0-1012.12 —
Ubuntu 22.04 LTS linux-oracle 5.15.0-1055.61 —
Ubuntu 22.04 LTS linux-riscv +31 No fix yet —
Ubuntu 22.04 LTS linux-xilinx-zynqmp 5.15.0-1030.34 —
Ubuntu 20.04 LTS linux 5.4.0-181.201 —
Ubuntu 20.04 LTS linux-aws 5.4.0-1124.134 —
Ubuntu 20.04 LTS linux-aws-5.15 5.15.0-1057.63~20.04.1 —
Ubuntu 20.04 LTS linux-azure 5.4.0-1129.136 —
Ubuntu 20.04 LTS linux-azure-5.15 5.15.0-1060.69~20.04.1 —
Ubuntu 20.04 LTS linux-bluefield 5.4.0-1084.91 —
Ubuntu 20.04 LTS linux-gcp 5.4.0-1128.137 —
Ubuntu 20.04 LTS linux-gcp-5.15 5.15.0-1055.63~20.04.1 —
Ubuntu 20.04 LTS linux-gke +26 No fix yet —
Ubuntu 20.04 LTS linux-gkeop 5.4.0-1091.95 —
Ubuntu 20.04 LTS linux-gkeop-5.15 5.15.0-1040.46~20.04.1 —
Ubuntu 20.04 LTS linux-hwe-5.15 +1 5.15.0-102.112~20.04.1 —
Ubuntu 20.04 LTS linux-ibm 5.4.0-1071.76 —
Ubuntu 20.04 LTS linux-ibm-5.15 5.15.0-1050.53~20.04.1 —
Ubuntu 20.04 LTS linux-intel-iotg-5.15 5.15.0-1052.58~20.04.1 —
Ubuntu 20.04 LTS linux-iot 5.4.0-1036.37 —
Ubuntu 20.04 LTS linux-kvm 5.4.0-1112.119 —
Ubuntu 20.04 LTS linux-nvidia-tegra-5.15 5.15.0-1025.25~20.04.1 —
Ubuntu 20.04 LTS linux-oracle 5.4.0-1123.132 —
Ubuntu 20.04 LTS linux-oracle-5.15 5.15.0-1055.61~20.04.1 —
Ubuntu 20.04 LTS linux-raspi 5.4.0-1108.120 —
Ubuntu 20.04 LTS linux-riscv-5.15 5.15.0-1053.57~20.04.1 —
Ubuntu 20.04 LTS linux-xilinx-zynqmp 5.4.0-1043.47 —
Ubuntu 18.04 LTS linux-gcp +13 No fix yet —
Ubuntu 16.04 LTS linux-hwe-edge No fix yet —
Show 9 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu Pro Realtime 24.04 LTS linux-raspi-realtime 6.8.0-2001.1 —
Ubuntu Pro Realtime 22.04 LTS linux-intel-iot-realtime 5.15.0-1050.52 —
Ubuntu Pro Realtime 22.04 LTS linux-realtime 5.15.0-1058.66 —
Ubuntu Pro FIPS-updates 22.04 LTS linux-aws-fips 5.15.0-1057.63+fips1 —
Ubuntu Pro FIPS-updates 22.04 LTS linux-azure-fips 5.15.0-1060.69+fips1 —
Ubuntu Pro FIPS-updates 22.04 LTS linux-fips 5.15.0-102.112+fips1 —
Ubuntu Pro FIPS-updates 22.04 LTS linux-gcp-fips 5.15.0-1055.63+fips2 —
Ubuntu Pro FIPS-updates 20.04 LTS linux-aws-fips 5.4.0-1124.134+fips1 —
Ubuntu Pro FIPS-updates 20.04 LTS linux-azure-fips 5.4.0-1129.136+fips1 —
Ubuntu Pro FIPS-updates 20.04 LTS linux-fips 5.4.0-1098.108 —
Ubuntu Pro FIPS-updates 20.04 LTS linux-gcp-fips 5.4.0-1128.137+fips1 —
Ubuntu Pro FIPS-updates 18.04 LTS linux-fips +3 No fix yet —
Ubuntu Pro FIPS-preview 22.04 LTS linux-fips +3 No fix yet —
Ubuntu Pro 18.04 LTS linux +5 No fix yet —
Ubuntu Pro 18.04 LTS linux-aws-5.4 5.4.0-1124.134~18.04.1 —
Ubuntu Pro 18.04 LTS linux-azure-5.4 5.4.0-1129.136~18.04.1 —
Ubuntu Pro 18.04 LTS linux-gcp-5.4 5.4.0-1128.137~18.04.1 —
Ubuntu Pro 18.04 LTS linux-hwe-5.4 5.4.0-181.201~18.04.1 —
Ubuntu Pro 18.04 LTS linux-ibm-5.4 5.4.0-1071.76~18.04.1 —
Ubuntu Pro 18.04 LTS linux-oracle-5.4 5.4.0-1123.132~18.04.1 —
Ubuntu Pro 18.04 LTS linux-raspi-5.4 5.4.0-1108.120~18.04.1 —
Ubuntu Pro 16.04 LTS linux-gcp +4 No fix yet —
Ubuntu Pro 14.04 LTS linux-azure No fix yet —
ReleasePackageFixed inAdvisory
RHEL 9 bpftool 7.3.0-427.33.1.el9_4 RHSA-2024:5928
RHEL 9 rv +64 5.14.0-427.33.1.el9_4 RHSA-2024:5928
RHEL 8 kernel-rt +12 4.18.0-553.16.1.rt7.357.el8_10 RHSA-2024:5102
RHEL 8 perf +26 4.18.0-553.16.1.el8_10 RHSA-2024:5101
Show 1 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
RHEL 8.8 EUS perf +26 4.18.0-477.75.1.el8_8 RHSA-2024:8107

AlmaLinux

Errata ↗
ReleasePackageFixed inAdvisory
AlmaLinux 9 bpftool 7.3.0-427.33.1.el9_4 ALSA-2024:5928
AlmaLinux 9 rv +60 5.14.0-427.33.1.el9_4 ALSA-2024:5928
AlmaLinux 8 kernel-rt +11 4.18.0-553.16.1.rt7.357.el8_10 ALSA-2024:5102
AlmaLinux 8 perf +24 4.18.0-553.16.1.el8_10 ALSA-2024:5101

Rocky Linux

Errata ↗
ReleasePackageFixed inAdvisory
Rocky Linux 8 kernel 4.18.0-553.16.1.el8_10 RXSA-2024:5101, RLSA-2024:5101
Rocky Linux 8 kernel-rt 4.18.0-553.16.1.rt7.357.el8_10 RLSA-2024:5102
ReleasePackageFixed inAdvisory
SLES 15 SP6 kernel-64kb +6 6.4.0-150600.23.22.1 SUSE-SU-2024:3383-1
SLES 15 SP6 kernel-azure +2 6.4.0-150600.8.11.1 SUSE-SU-2024:3194-1
SLES 15 SP6 kernel-default-base 6.4.0-150600.23.22.1.150600.12.8.3 SUSE-SU-2024:3383-1
SLES 15 SP5 kernel-64kb +6 5.14.21-150500.55.88.1 SUSE-SU-2024:4364-1
SLES 15 SP5 kernel-azure +2 5.14.21-150500.33.72.1 SUSE-SU-2024:3983-1
SLES 15 SP5 kernel-default-base 5.14.21-150500.55.88.1.150500.6.39.4 SUSE-SU-2024:4364-1
SLES 12 SP5 kernel-syms +2 4.12.14-122.234.1 SUSE-SU-2025:0034-1
Show 7 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
SLE Micro 6.0 kernel-default-base 6.4.0-17.1.1.51 SUSE-SU-2025:20044-1
SLE Micro 6.0 kernel-livepatch-MICRO-6-0_Update_2 +1 1-1.1 SUSE-SU-2025:20047-1, SUSE-SU-2025:20044-1
SLE Micro 6.0 kernel-rt +1 6.4.0-10.1 SUSE-SU-2025:20047-1
SLE Micro 6.0 kernel-source +2 6.4.0-19.1 SUSE-SU-2025:20044-1
SLE Micro 5.5 kernel-default 5.14.21-150500.55.88.1 SUSE-SU-2024:4364-1
SLE Micro 5.5 kernel-default-base 5.14.21-150500.55.88.1.150500.6.39.4 SUSE-SU-2024:4364-1
SLE Micro 5.5 kernel-rt +1 5.14.21-150500.13.76.1 SUSE-SU-2024:3985-1
SLE Live Patching 15 SP6 kernel-default 6.4.0-150600.23.22.1 SUSE-SU-2024:3383-1
SLE Live Patching 15 SP6 kernel-livepatch-SLE15-SP6-RT_Update_2 1-150600.1.3.2 SUSE-SU-2024:3195-1
SLE Live Patching 15 SP6 kernel-livepatch-SLE15-SP6_Update_4 1-150600.13.3.3 SUSE-SU-2024:3383-1
SLE Live Patching 15 SP5 kernel-default 5.14.21-150500.55.88.1 SUSE-SU-2024:4364-1
SLE Live Patching 15 SP5 kernel-livepatch-SLE15-SP5-RT_Update_22 1-150500.11.3.1 SUSE-SU-2024:3985-1
SLE Live Patching 15 SP5 kernel-livepatch-SLE15-SP5_Update_21 1-150500.11.5.1 SUSE-SU-2024:4364-1
SLE Live Patching 12 SP5 kernel-default 4.12.14-122.234.1 SUSE-SU-2024:4100-1
SLE Live Patching 12 SP5 kgraft-patch-SLE12-SP5_Update_62 1-8.3.1 SUSE-SU-2024:4100-1
SUSE Real Time Module 15 SP6 kernel-rt +2 6.4.0-150600.10.8.3 SUSE-SU-2024:3195-1
SUSE Real Time Module 15 SP6 kernel-syms-rt 6.4.0-150600.10.8.1 SUSE-SU-2024:3195-1
SUSE Real Time Module 15 SP5 kernel-rt +3 5.14.21-150500.13.76.1 SUSE-SU-2024:3985-1
ReleasePackageFixed inAdvisory
openSUSE Leap 15.6 dtb-aarch64 +10 6.4.0-150600.23.22.1 SUSE-SU-2024:3383-1
openSUSE Leap 15.6 kernel-azure +2 6.4.0-150600.8.11.1 SUSE-SU-2024:3194-1
openSUSE Leap 15.6 kernel-default-base 6.4.0-150600.23.22.1.150600.12.8.3 SUSE-SU-2024:3383-1
openSUSE Leap 15.6 kernel-rt +2 6.4.0-150600.10.8.3 SUSE-SU-2024:3195-1
openSUSE Leap 15.6 kernel-syms-rt 6.4.0-150600.10.8.1 SUSE-SU-2024:3195-1
openSUSE Leap 15.5 kernel-azure +2 5.14.21-150500.33.72.1 SUSE-SU-2024:3983-1
openSUSE Leap 15.5 kernel-rt +3 5.14.21-150500.13.76.1 SUSE-SU-2024:3985-1
Show 1 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
openSUSE Leap Micro 5.5 kernel-rt 5.14.21-150500.13.76.1 SUSE-SU-2024:3985-1

Amazon Linux

ReleasePackageFixed inAdvisory
Amazon Linux 2023 kernel-livepatch-6.1.94-99.176 1.0-0.amzn2023 ALAS2023-2024-683
Amazon Linux 2023 perf +14 6.1.94-99.176.amzn2023 ALAS2023-2024-683
Amazon Linux 2 kernel-livepatch-4.14.349-266.564 1.0-0.amzn2 ALAS2-2024-2613
Amazon Linux 2 perf +8 4.14.349-266.564.amzn2 ALAS2-2024-2613

Azure Linux

ReleasePackageFixed inAdvisory
Azure Linux 2 (CBL-Mariner) kernel 5.15.162.2-1 —

Oracle Linux

ReleasePackageFixed inAdvisory
Oracle Linux 9 bpftool 7.3.0-427.33.1.el9_4 ELSA-2024-5928
Oracle Linux 9 rv +27 5.14.0-427.33.1.el9_4 ELSA-2024-5928
Oracle Linux 8 perf +19 4.18.0-553.16.1.el8_10 ELSA-2024-5101

Advisories 31

References