{"dataType":"CVE_RECORD","dataVersion":"5.1","cveMetadata":{"cveId":"CVE-2024-39476","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2024-06-25T14:23:23.746Z","datePublished":"2024-07-05T06:55:06.559Z","dateUpdated":"2025-05-04T12:57:03.441Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2025-05-04T12:57:03.441Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nmd/raid5: fix deadlock that raid5d() wait for itself to clear MD_SB_CHANGE_PENDING\n\nXiao reported that lvm2 test lvconvert-raid-takeover.sh can hang with\nsmall possibility, the root cause is exactly the same as commit\nbed9e27baf52 (\"Revert \"md/raid5: Wait for MD_SB_CHANGE_PENDING in raid5d\"\")\n\nHowever, Dan reported another hang after that, and junxiao investigated\nthe problem and found out that this is caused by plugged bio can't issue\nfrom raid5d().\n\nCurrent implementation in raid5d() has a weird dependence:\n\n1) md_check_recovery() from raid5d() must hold 'reconfig_mutex' to clear\n   MD_SB_CHANGE_PENDING;\n2) raid5d() handles IO in a deadloop, until all IO are issued;\n3) IO from raid5d() must wait for MD_SB_CHANGE_PENDING to be cleared;\n\nThis behaviour is introduce before v2.6, and for consequence, if other\ncontext hold 'reconfig_mutex', and md_check_recovery() can't update\nsuper_block, then raid5d() will waste one cpu 100% by the deadloop, until\n'reconfig_mutex' is released.\n\nRefer to the implementation from raid1 and raid10, fix this problem by\nskipping issue IO if MD_SB_CHANGE_PENDING is still set after\nmd_check_recovery(), daemon thread will be woken up when 'reconfig_mutex'\nis released. Meanwhile, the hang problem will be fixed as well."}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/md/raid5.c"],"versions":[{"version":"f3d55bd5b7b928ad82f8075d89c908702f3593ab","lessThan":"b32aa95843cac6b12c2c014d40fca18aef24a347","status":"affected","versionType":"git"},{"version":"1c00bb624cd084e2006520ad0edacaff0fb941c4","lessThan":"634ba3c97ec413cb10681c7b196db43ee461ecf4","status":"affected","versionType":"git"},{"version":"782b3e71c957991ac8ae53318bc369049d49bb53","lessThan":"aa64464c8f4d2ab92f6d0b959a1e0767b829d787","status":"affected","versionType":"git"},{"version":"9e86dffd0b02594d2e7c60c6db9e889c0395414b","lessThan":"098d54934814dd876963abfe751c3b1cf7fbe56a","status":"affected","versionType":"git"},{"version":"5e2cf333b7bd5d3e62595a44d598a254c697cd74","lessThan":"3f8d5e802d4cedd445f9a89be8c3fd2d0e99024b","status":"affected","versionType":"git"},{"version":"5e2cf333b7bd5d3e62595a44d598a254c697cd74","lessThan":"cd2538e5af495b3c747e503db346470fc1ffc447","status":"affected","versionType":"git"},{"version":"5e2cf333b7bd5d3e62595a44d598a254c697cd74","lessThan":"e332a12f65d8fed8cf63bedb4e9317bb872b9ac7","status":"affected","versionType":"git"},{"version":"5e2cf333b7bd5d3e62595a44d598a254c697cd74","lessThan":"151f66bb618d1fd0eeb84acb61b4a9fa5d8bb0fa","status":"affected","versionType":"git"},{"version":"7d808fe6af8409cf9f46ed2b10840e5788985e9b","status":"affected","versionType":"git"},{"version":"2cab058f2b147e0b7c01546ba00445e5701861f5","status":"affected","versionType":"git"},{"version":"91962e40ec3d26e291db230cd45b302da2aff200","status":"affected","versionType":"git"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/md/raid5.c"],"versions":[{"version":"6.1","status":"affected"},{"version":"0","lessThan":"6.1","status":"unaffected","versionType":"semver"},{"version":"4.19.316","lessThanOrEqual":"4.19.*","status":"unaffected","versionType":"semver"},{"version":"5.4.278","lessThanOrEqual":"5.4.*","status":"unaffected","versionType":"semver"},{"version":"5.10.219","lessThanOrEqual":"5.10.*","status":"unaffected","versionType":"semver"},{"version":"5.15.161","lessThanOrEqual":"5.15.*","status":"unaffected","versionType":"semver"},{"version":"6.1.94","lessThanOrEqual":"6.1.*","status":"unaffected","versionType":"semver"},{"version":"6.6.34","lessThanOrEqual":"6.6.*","status":"unaffected","versionType":"semver"},{"version":"6.9.5","lessThanOrEqual":"6.9.*","status":"unaffected","versionType":"semver"},{"version":"6.10","lessThanOrEqual":"*","status":"unaffected","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.19.262","versionEndExcluding":"4.19.316"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.4.220","versionEndExcluding":"5.4.278"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.10.150","versionEndExcluding":"5.10.219"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.15.75","versionEndExcluding":"5.15.161"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.1","versionEndExcluding":"6.1.94"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.1","versionEndExcluding":"6.6.34"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.1","versionEndExcluding":"6.9.5"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.1","versionEndExcluding":"6.10"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.14.296"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.19.17"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.0.3"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/b32aa95843cac6b12c2c014d40fca18aef24a347"},{"url":"https://git.kernel.org/stable/c/634ba3c97ec413cb10681c7b196db43ee461ecf4"},{"url":"https://git.kernel.org/stable/c/aa64464c8f4d2ab92f6d0b959a1e0767b829d787"},{"url":"https://git.kernel.org/stable/c/098d54934814dd876963abfe751c3b1cf7fbe56a"},{"url":"https://git.kernel.org/stable/c/3f8d5e802d4cedd445f9a89be8c3fd2d0e99024b"},{"url":"https://git.kernel.org/stable/c/cd2538e5af495b3c747e503db346470fc1ffc447"},{"url":"https://git.kernel.org/stable/c/e332a12f65d8fed8cf63bedb4e9317bb872b9ac7"},{"url":"https://git.kernel.org/stable/c/151f66bb618d1fd0eeb84acb61b4a9fa5d8bb0fa"}],"title":"md/raid5: fix deadlock that raid5d() wait for itself to clear MD_SB_CHANGE_PENDING","x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2024-07-08T15:14:06.487642Z","id":"CVE-2024-39476","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"title":"CISA ADP Vulnrichment","providerMetadata":{"orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP","dateUpdated":"2024-07-08T15:14:14.582Z"}},{"providerMetadata":{"orgId":"af854a3a-2127-422b-91ae-364da2661108","shortName":"CVE","dateUpdated":"2024-08-02T04:26:15.248Z"},"title":"CVE Program Container","references":[{"url":"https://git.kernel.org/stable/c/b32aa95843cac6b12c2c014d40fca18aef24a347","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/634ba3c97ec413cb10681c7b196db43ee461ecf4","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/aa64464c8f4d2ab92f6d0b959a1e0767b829d787","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/098d54934814dd876963abfe751c3b1cf7fbe56a","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/3f8d5e802d4cedd445f9a89be8c3fd2d0e99024b","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/cd2538e5af495b3c747e503db346470fc1ffc447","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/e332a12f65d8fed8cf63bedb4e9317bb872b9ac7","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/151f66bb618d1fd0eeb84acb61b4a9fa5d8bb0fa","tags":["x_transferred"]}]}]}}