CVE-2024-39476 json
md/raid5: fix deadlock that raid5d() wait for itself to clear MD_SB_CHANGE_PENDING
published 2024-07-05 2 y ago modified 2026-06-17 4 mo ago also EUVD-2024-38001
- cvss
- 5.5
- version 3.1, NVD
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 7%
- public exploits
- 0
- none known
Summary
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.
Patch / fix
- Linux Linux 4.15, 4.19.316, 5.4.278, 5.10.219, 5.15.161, 5.20, 6.1, 6.1.94, 6.6.34, 6.9.5, 6.10
- linux Debian 12 6.1.94-1
- linux Debian 14, Debian 13 6.9.7-1
debian advisories DEBIAN-CVE-2024-39476
- linux Ubuntu 20.04 LTS 5.4.0-181.201
- linux Ubuntu 22.04 LTS 5.15.0-102.112
- linux-aws Ubuntu 20.04 LTS 5.4.0-1124.134
- linux-aws Ubuntu 22.04 LTS 5.15.0-1057.63
- linux-gcp Ubuntu 20.04 LTS 5.4.0-1128.137
- linux-gcp Ubuntu 22.04 LTS 5.15.0-1055.63
- linux-gke Ubuntu 22.04 LTS 5.15.0-1054.59
- linux-ibm Ubuntu 20.04 LTS 5.4.0-1071.76
ubuntu advisories UBUNTU-CVE-2024-39476
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- kernel-rt RHEL 8 4.18.0-553.16.1.rt7.357.el8_10
- kernel-rt-kvm RHEL 8 4.18.0-553.16.1.rt7.357.el8_10
- kernel-rt-core RHEL 8 4.18.0-553.16.1.rt7.357.el8_10
- kernel-rt-modules RHEL 8 4.18.0-553.16.1.rt7.357.el8_10
- kernel-rt-debug-kvm RHEL 8 4.18.0-553.16.1.rt7.357.el8_10
- kernel-rt-debug-core RHEL 8 4.18.0-553.16.1.rt7.357.el8_10
- kernel-rt-debug-modules RHEL 8 4.18.0-553.16.1.rt7.357.el8_10
- kernel-rt-modules-extra RHEL 8 4.18.0-553.16.1.rt7.357.el8_10
red hat advisories RHSA-2024:8107RHSA-2024:5102RHSA-2024:5101RHSA-2024:5928
- kernel-rt Linux Micro 6.0 6.4.0-10.1
- kernel-source-rt Linux Micro 6.0 6.4.0-10.1
- kernel-livepatch-MICRO-6-0-RT_Update_2 Linux Micro 6.0 1-1.1
- kernel-source Linux Micro 6.0 6.4.0-19.1
- kernel-default Linux Micro 6.0 6.4.0-19.1
- kernel-kvmsmall Linux Micro 6.0 6.4.0-19.1
- kernel-default-base Linux Micro 6.0 6.4.0-17.1.1.51
- kernel-livepatch-MICRO-6-0_Update_2 Linux Micro 6.0 1-1.1
suse advisories SUSE-SU-2025:20047-1SUSE-SU-2025:20044-1SUSE-SU-2025:0034-1SUSE-SU-2024:4364-1SUSE-SU-2024:4100-1SUSE-SU-2024:3985-1
- kernel AlmaLinux 9 5.14.0-427.33.1.el9_4
- rv AlmaLinux 9 5.14.0-427.33.1.el9_4
- perf AlmaLinux 9 5.14.0-427.33.1.el9_4
- rtla AlmaLinux 9 5.14.0-427.33.1.el9_4
- bpftool AlmaLinux 9 7.3.0-427.33.1.el9_4
- libperf AlmaLinux 9 5.14.0-427.33.1.el9_4
- kernel-rt AlmaLinux 9 5.14.0-427.33.1.el9_4
- kernel-64k AlmaLinux 9 5.14.0-427.33.1.el9_4
almalinux advisories ALSA-2024:5928ALSA-2024:5101ALSA-2024:5102
- kernel Rocky Linux 8 4.18.0-553.16.1.el8_10.cloud.0.1
- kernel-rt Rocky Linux 8 4.18.0-553.16.1.rt7.357.el8_10
- kernel Rocky Linux 8 4.18.0-553.16.1.el8_10
rocky linux advisories RXSA-2024:5101RLSA-2024:5102RLSA-2024:5101
- git.kernel.org/stable/c/b32aa95843cac6b12c2c014d40fca18aef24a347 commit
- git.kernel.org/stable/c/634ba3c97ec413cb10681c7b196db43ee461ecf4 commit
- git.kernel.org/stable/c/aa64464c8f4d2ab92f6d0b959a1e0767b829d787 commit
- git.kernel.org/stable/c/098d54934814dd876963abfe751c3b1cf7fbe56a commit
- git.kernel.org/stable/c/3f8d5e802d4cedd445f9a89be8c3fd2d0e99024b commit
- git.kernel.org/stable/c/cd2538e5af495b3c747e503db346470fc1ffc447 commit
- git.kernel.org/stable/c/e332a12f65d8fed8cf63bedb4e9317bb872b9ac7 commit
- git.kernel.org/stable/c/151f66bb618d1fd0eeb84acb61b4a9fa5d8bb0fa commit
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2024-39476 updated cvss 5.5
kernel: md/raid5: fix deadlock that raid5d() wait for itself to clear MD_SB_CHANGE_PENDING
-
Red Hat Enterprise Linux 6 perf, kernel, python-perf, kernel-kdump, kernel-firmware, kernel-bootwrapper, +1 more Red Hat Enterprise Linux 7 perf, kernel, bpftool, kernel-rt, python-perf, kernel-kdump, +8 moreaffected: workaround, no fix planned “Out of support scope”
-
Red Hat Enterprise Linux 9 kernel-rt, kernel-rt-kvm, kernel-rt-core, kernel-rt-modules, kernel-rt-debug-kvm, kernel-rt-debug-core, +12 moreaffected: workaround, no fix available
-
Red Hat CodeReady Linux Builder EUS (v.8.8) kernel-debuginfo-common-x86_64 4.18.0-477.75.1.el8_8, kernel-debuginfo-common-aarch64 4.18.0-477.75.1.el8_8, kernel-debuginfo-common-ppc64le 4.18.0-477.75.1.el8_8fixed: vendor fix RHSA-2024:8107
-
Red Hat Enterprise Linux AppStream (v. 9) rv 5.14.0-427.33.1.el9_4, perf 5.14.0-427.33.1.el9_4, rtla 5.14.0-427.33.1.el9_4, kernel-devel-matched 5.14.0-427.33.1.el9_4, kernel-64k-devel-matched 5.14.0-427.33.1.el9_4, kernel-debug-devel-matched 5.14.0-427.33.1.el9_4, +6 morefixed: vendor fix RHSA-2024:5928
-
Red Hat Enterprise Linux BaseOS (v. 8) perf 4.18.0-553.16.1.el8_10, kernel 4.18.0-553.16.1.el8_10, bpftool 4.18.0-553.16.1.el8_10, kernel-core 4.18.0-553.16.1.el8_10, kernel-tools 4.18.0-553.16.1.el8_10, python3-perf 4.18.0-553.16.1.el8_10, +15 morefixed: vendor fix RHSA-2024:5101
-
Red Hat Enterprise Linux BaseOS (v. 9) bpftool 7.3.0-427.33.1.el9_4, kernel 5.14.0-427.33.1.el9_4, kernel-64k 5.14.0-427.33.1.el9_4, kernel-core 5.14.0-427.33.1.el9_4, kernel-tools 5.14.0-427.33.1.el9_4, python3-perf 5.14.0-427.33.1.el9_4, +28 morefixed: vendor fix RHSA-2024:5928
-
Red Hat Enterprise Linux BaseOS EUS (v.8.8) perf 4.18.0-477.75.1.el8_8, kernel 4.18.0-477.75.1.el8_8, bpftool 4.18.0-477.75.1.el8_8, kernel-core 4.18.0-477.75.1.el8_8, kernel-tools 4.18.0-477.75.1.el8_8, python3-perf 4.18.0-477.75.1.el8_8, +15 morefixed: vendor fix RHSA-2024:8107
-
Red Hat Enterprise Linux CRB (v. 8) kernel-debuginfo-common-x86_64 4.18.0-553.16.1.el8_10, kernel-debuginfo-common-aarch64 4.18.0-553.16.1.el8_10, kernel-debuginfo-common-ppc64le 4.18.0-553.16.1.el8_10fixed: vendor fix RHSA-2024:5101
show 5 moreshow fewer
-
Red Hat Enterprise Linux CRB (v. 9) libperf 5.14.0-427.33.1.el9_4, kernel-debuginfo-common-s390x 5.14.0-427.33.1.el9_4, kernel-debuginfo-common-x86_64 5.14.0-427.33.1.el9_4, kernel-debuginfo-common-aarch64 5.14.0-427.33.1.el9_4, kernel-debuginfo-common-ppc64le 5.14.0-427.33.1.el9_4fixed: vendor fix RHSA-2024:5928
-
Red Hat Enterprise Linux NFV (v. 8) kernel-rt 4.18.0-553.16.1.rt7.357.el8_10, kernel-rt-kvm 4.18.0-553.16.1.rt7.357.el8_10, kernel-rt-core 4.18.0-553.16.1.rt7.357.el8_10, kernel-rt-modules 4.18.0-553.16.1.rt7.357.el8_10, kernel-rt-debug-kvm 4.18.0-553.16.1.rt7.357.el8_10, kernel-rt-debug-core 4.18.0-553.16.1.rt7.357.el8_10, +4 morefixed: vendor fix RHSA-2024:5102
-
Red Hat Enterprise Linux NFV (v. 9) kernel-rt 5.14.0-427.33.1.el9_4, kernel-rt-kvm 5.14.0-427.33.1.el9_4, kernel-rt-core 5.14.0-427.33.1.el9_4, kernel-rt-modules 5.14.0-427.33.1.el9_4, kernel-rt-debug-kvm 5.14.0-427.33.1.el9_4, kernel-rt-debug-core 5.14.0-427.33.1.el9_4, +6 morefixed: vendor fix RHSA-2024:5928
-
Red Hat Enterprise Linux RT (v. 8) kernel-rt 4.18.0-553.16.1.rt7.357.el8_10, kernel-rt-core 4.18.0-553.16.1.rt7.357.el8_10, kernel-rt-modules 4.18.0-553.16.1.rt7.357.el8_10, kernel-rt-debug-core 4.18.0-553.16.1.rt7.357.el8_10, kernel-rt-debug-modules 4.18.0-553.16.1.rt7.357.el8_10, kernel-rt-modules-extra 4.18.0-553.16.1.rt7.357.el8_10, +2 morefixed: vendor fix RHSA-2024:5102
-
Red Hat Enterprise Linux RT (v. 9) kernel-rt 5.14.0-427.33.1.el9_4, kernel-rt-core 5.14.0-427.33.1.el9_4, kernel-rt-modules 5.14.0-427.33.1.el9_4, kernel-rt-debug-core 5.14.0-427.33.1.el9_4, kernel-rt-modules-core 5.14.0-427.33.1.el9_4, kernel-rt-debug-modules 5.14.0-427.33.1.el9_4, +4 morefixed: vendor fix RHSA-2024:5928
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
cisa ICSA-25-226-15 updated
Siemens SINEC OS
-
Siemens RUGGEDCOM RST2428P (6GK6242-6PA00) Siemens SCALANCE XC-300/XR-300/XC-400/XR-500WG/XR-500 family Siemens SCALANCE XCM-/XRM-/XCH-/XRH-300 familynot affected
Facts from CISA's republication of the vendor's own advisory (CSAF); the linked advisory is the authoritative source. CISA notification · csaf
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 2 y ago
Exploit prediction
0.18% chance of exploitation in the next 30 days, higher than 7% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| NVD | 3.1 | 5.5 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H |
Affected products
- Linux Linux
Classification
- Weakness
-
- CWE-667 Improper Locking
- Technology feeds
References
-
git.kernel.org
/stable/c/b32aa95843cac6b12c2c014d40fca18aef24a347
mailing-list, patch
-
git.kernel.org
/stable/c/634ba3c97ec413cb10681c7b196db43ee461ecf4
mailing-list, patch
-
git.kernel.org
/stable/c/aa64464c8f4d2ab92f6d0b959a1e0767b829d787
mailing-list, patch
-
git.kernel.org
/stable/c/098d54934814dd876963abfe751c3b1cf7fbe56a
mailing-list, patch
-
git.kernel.org
/stable/c/3f8d5e802d4cedd445f9a89be8c3fd2d0e99024b
mailing-list, patch
-
git.kernel.org
/stable/c/cd2538e5af495b3c747e503db346470fc1ffc447
mailing-list, patch
-
git.kernel.org
/stable/c/e332a12f65d8fed8cf63bedb4e9317bb872b9ac7
mailing-list, patch
-
git.kernel.org
/stable/c/151f66bb618d1fd0eeb84acb61b4a9fa5d8bb0fa
mailing-list, patch
Sources
- CVE List CVE-2024-39476
- NVD CVE-2024-39476
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.