{"id":"CVE-2024-26772","state":"PUBLISHED","title":"ext4: avoid allocating blocks from corrupted group in ext4_mb_find_by_goal()","description":"In the Linux kernel, the following vulnerability has been resolved:\n\next4: avoid allocating blocks from corrupted group in ext4_mb_find_by_goal()\n\nPlaces the logic for checking if the group's block bitmap is corrupt under\nthe protection of the group lock to avoid allocating blocks from the group\nwith a corrupted block bitmap.","publishedAt":"2024-04-03T17:00:58.733Z","updatedAt":"2026-10-15T00:38:29.232Z","severity":{"score":7.8,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"163a203ddb36c36d4a1c942aececda0cc8d06aa7","status":"affected","lessThan":"5a6dcc4ad0f7f7fa8e8d127b5526e7c5f2d38a43","versionType":"git"},{"version":"163a203ddb36c36d4a1c942aececda0cc8d06aa7","status":"affected","lessThan":"6b92b1bc16d691c95b152c6dbf027ad64315668d","versionType":"git"},{"version":"163a203ddb36c36d4a1c942aececda0cc8d06aa7","status":"affected","lessThan":"ffeb72a80a82aba59a6774b0611f792e0ed3b0b7","versionType":"git"},{"version":"163a203ddb36c36d4a1c942aececda0cc8d06aa7","status":"affected","lessThan":"8de8305a25bfda607fc13475ebe84b978c96d7ff","versionType":"git"},{"version":"163a203ddb36c36d4a1c942aececda0cc8d06aa7","status":"affected","lessThan":"d639102f4cbd4cb65d1225dba3b9265596aab586","versionType":"git"},{"version":"163a203ddb36c36d4a1c942aececda0cc8d06aa7","status":"affected","lessThan":"d3bbe77a76bc52e9d4d0a120f1509be36e25c916","versionType":"git"},{"version":"163a203ddb36c36d4a1c942aececda0cc8d06aa7","status":"affected","lessThan":"21dbe20589c7f48e9c5d336ce6402bcebfa6d76a","versionType":"git"},{"version":"163a203ddb36c36d4a1c942aececda0cc8d06aa7","status":"affected","lessThan":"832698373a25950942c04a512daa652c18a9b513","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/ext4/mballoc.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.12","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.12","versionType":"semver"},{"version":"4.19.308","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.270","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.211","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.150","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.80","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.19","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.7.7","status":"unaffected","lessThanOrEqual":"6.7.*","versionType":"semver"},{"version":"6.8","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/ext4/mballoc.c"]}],"references":["https://git.kernel.org/stable/c/5a6dcc4ad0f7f7fa8e8d127b5526e7c5f2d38a43","https://git.kernel.org/stable/c/6b92b1bc16d691c95b152c6dbf027ad64315668d","https://git.kernel.org/stable/c/ffeb72a80a82aba59a6774b0611f792e0ed3b0b7","https://git.kernel.org/stable/c/8de8305a25bfda607fc13475ebe84b978c96d7ff","https://git.kernel.org/stable/c/d639102f4cbd4cb65d1225dba3b9265596aab586","https://git.kernel.org/stable/c/d3bbe77a76bc52e9d4d0a120f1509be36e25c916","https://git.kernel.org/stable/c/21dbe20589c7f48e9c5d336ce6402bcebfa6d76a","https://git.kernel.org/stable/c/832698373a25950942c04a512daa652c18a9b513","https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html","https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html","https://cert-portal.siemens.com/productcert/html/ssa-398330.html","https://cert-portal.siemens.com/productcert/html/ssa-613116.html"],"weaknesses":[],"ingestedAt":"2026-10-29T20:07:10.607Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2024/26xxx/CVE-2024-26772.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2024-26772","state":"PUBLISHED","datePublished":"2024-04-03T17:00:58.733Z","dateUpdated":"2026-10-15T00:38:29.232Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2024-02-19T14:20:24.176Z"},"containers":{"cna":{"title":"ext4: avoid allocating blocks from corrupted group in ext4_mb_find_by_goal()","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\next4: avoid allocating blocks from corrupted group in ext4_mb_find_by_goal()\n\nPlaces the logic for checking if the group's block bitmap is corrupt under\nthe protection of the group lock to avoid allocating blocks from the group\nwith a corrupted block bitmap."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"163a203ddb36c36d4a1c942aececda0cc8d06aa7","status":"affected","lessThan":"5a6dcc4ad0f7f7fa8e8d127b5526e7c5f2d38a43","versionType":"git"},{"version":"163a203ddb36c36d4a1c942aececda0cc8d06aa7","status":"affected","lessThan":"6b92b1bc16d691c95b152c6dbf027ad64315668d","versionType":"git"},{"version":"163a203ddb36c36d4a1c942aececda0cc8d06aa7","status":"affected","lessThan":"ffeb72a80a82aba59a6774b0611f792e0ed3b0b7","versionType":"git"},{"version":"163a203ddb36c36d4a1c942aececda0cc8d06aa7","status":"affected","lessThan":"8de8305a25bfda607fc13475ebe84b978c96d7ff","versionType":"git"},{"version":"163a203ddb36c36d4a1c942aececda0cc8d06aa7","status":"affected","lessThan":"d639102f4cbd4cb65d1225dba3b9265596aab586","versionType":"git"},{"version":"163a203ddb36c36d4a1c942aececda0cc8d06aa7","status":"affected","lessThan":"d3bbe77a76bc52e9d4d0a120f1509be36e25c916","versionType":"git"},{"version":"163a203ddb36c36d4a1c942aececda0cc8d06aa7","status":"affected","lessThan":"21dbe20589c7f48e9c5d336ce6402bcebfa6d76a","versionType":"git"},{"version":"163a203ddb36c36d4a1c942aececda0cc8d06aa7","status":"affected","lessThan":"832698373a25950942c04a512daa652c18a9b513","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/ext4/mballoc.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.12","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.12","versionType":"semver"},{"version":"4.19.308","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.270","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.211","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.150","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.80","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.19","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.7.7","status":"unaffected","lessThanOrEqual":"6.7.*","versionType":"semver"},{"version":"6.8","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/ext4/mballoc.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/5a6dcc4ad0f7f7fa8e8d127b5526e7c5f2d38a43"},{"url":"https://git.kernel.org/stable/c/6b92b1bc16d691c95b152c6dbf027ad64315668d"},{"url":"https://git.kernel.org/stable/c/ffeb72a80a82aba59a6774b0611f792e0ed3b0b7"},{"url":"https://git.kernel.org/stable/c/8de8305a25bfda607fc13475ebe84b978c96d7ff"},{"url":"https://git.kernel.org/stable/c/d639102f4cbd4cb65d1225dba3b9265596aab586"},{"url":"https://git.kernel.org/stable/c/d3bbe77a76bc52e9d4d0a120f1509be36e25c916"},{"url":"https://git.kernel.org/stable/c/21dbe20589c7f48e9c5d336ce6402bcebfa6d76a"},{"url":"https://git.kernel.org/stable/c/832698373a25950942c04a512daa652c18a9b513"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.8,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - The vulnerable code is the ext4 block allocator, reached from local filesystem syscalls (write/fallocate/truncate) on a mounted ext4 volume. No network protocol handler is involved.\nAC:L - The attacker controls both sides of the race — one thread frees or scans blocks in a group to trigger corruption detection under the group lock while another thread issues a goal-hinted allocation into the same group, and the racing thread spins on ext4_lock_group() for the whole (long) critical section of the corruption detector, so the window is easily won and retried indefinitely.\nPR:L - Only an ordinary unprivileged local account is needed — any writable directory on an ext4 filesystem (e.g. /tmp or a home directory) lets the attacker drive both the allocation and the block-freeing paths. No capability or userns trick is required.\nUI:N - Exploitation happens through the attacker's own concurrent file I/O on an already-mounted filesystem; no victim action such as mounting an image or opening a file is required.\nS:U - The impact is confined to the kernel/OS security authority — filesystem metadata corruption and kernel crashes — with no crossing into a hypervisor, IOMMU, or other separate security scope.\nC:H - Allocating from a group whose bitmap is known-inconsistent hands out blocks that are still in use by other inodes, so the attacker's file can be read back containing another user's on-disk data — an unbounded disclosure of arbitrary filesystem content.\nI:H - The same double-allocation lets the attacker's writes overwrite other users' file data and ext4 metadata, and the double `percpu_counter_sub` on s_freeclusters_counter corrupts global free-space accounting, giving arbitrary on-disk data modification.\nA:H - The path reaches the divide-by-zero in mb_update_avg_fragment_size() and multiple BUG_ON()s in mb_mark_used() on an inconsistent buddy, and ext4_mb_mark_diskspace_used()'s \"overlap fs metadata\" ext4_error() forces the filesystem read-only (or panics with errors=panic), plus free-cluster underflow causes filesystem-wide ENOSPC."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-05T11:27:09.780Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.12","versionEndExcluding":"4.19.308"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.12","versionEndExcluding":"5.4.270"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.12","versionEndExcluding":"5.10.211"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.12","versionEndExcluding":"5.15.150"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.12","versionEndExcluding":"6.1.80"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.12","versionEndExcluding":"6.6.19"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.12","versionEndExcluding":"6.7.7"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.12","versionEndExcluding":"6.8"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"cvssV3_1":{"scope":"UNCHANGED","version":"3.1","baseScore":5.5,"attackVector":"LOCAL","baseSeverity":"MEDIUM","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","integrityImpact":"NONE","userInteraction":"NONE","attackComplexity":"LOW","availabilityImpact":"HIGH","privilegesRequired":"LOW","confidentialityImpact":"NONE"}},{"other":{"type":"ssvc","content":{"timestamp":"2024-04-03T19:16:02.816411Z","id":"CVE-2024-26772","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"problemTypes":[{"descriptions":[{"type":"CWE","lang":"en","description":"CWE-noinfo Not enough information"}]}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2024-11-01T15:30:43.236Z"}},{"title":"CVE Program Container","references":[{"url":"https://git.kernel.org/stable/c/5a6dcc4ad0f7f7fa8e8d127b5526e7c5f2d38a43","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/6b92b1bc16d691c95b152c6dbf027ad64315668d","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/ffeb72a80a82aba59a6774b0611f792e0ed3b0b7","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/8de8305a25bfda607fc13475ebe84b978c96d7ff","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/d639102f4cbd4cb65d1225dba3b9265596aab586","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/d3bbe77a76bc52e9d4d0a120f1509be36e25c916","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/21dbe20589c7f48e9c5d336ce6402bcebfa6d76a","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/832698373a25950942c04a512daa652c18a9b513","tags":["x_transferred"]},{"url":"https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html","tags":["x_transferred"]},{"url":"https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html","tags":["x_transferred"]}],"providerMetadata":{"shortName":"CVE","orgId":"af854a3a-2127-422b-91ae-364da2661108","dateUpdated":"2024-08-02T00:14:13.428Z"}},{"affected":[{"vendor":"Siemens","product":"RUGGEDCOM RST2428P","defaultStatus":"unknown","versions":[{"version":"0","status":"unaffected","lessThan":"*","versionType":"custom"}]},{"vendor":"Siemens","product":"SCALANCE XC-300/XR-300/XC-400/XR-500WG/XR-500 family","defaultStatus":"unknown","versions":[{"version":"0","status":"unaffected","lessThan":"*","versionType":"custom"}]},{"vendor":"Siemens","product":"SCALANCE XCM-/XRM-/XCH-/XRH-300 family","defaultStatus":"unknown","versions":[{"version":"0","status":"unaffected","lessThan":"*","versionType":"custom"}]},{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518-4 PN/DP MFP","defaultStatus":"unknown","versions":[{"version":"V3.1.0","status":"affected","lessThan":"V3.1.5","versionType":"custom"}]},{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518-4 PN/DP MFP","defaultStatus":"unknown","versions":[{"version":"V3.1.0","status":"affected","lessThan":"V3.1.5","versionType":"custom"}]},{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP","defaultStatus":"unknown","versions":[{"version":"V3.1.0","status":"affected","lessThan":"V3.1.5","versionType":"custom"}]},{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP","defaultStatus":"unknown","versions":[{"version":"V3.1.0","status":"affected","lessThan":"V3.1.5","versionType":"custom"}]},{"vendor":"Siemens","product":"SIPLUS S7-1500 CPU 1518-4 PN/DP MFP","defaultStatus":"unknown","versions":[{"version":"V3.1.0","status":"affected","lessThan":"V3.1.5","versionType":"custom"}]}],"references":[{"url":"https://cert-portal.siemens.com/productcert/html/ssa-398330.html"},{"url":"https://cert-portal.siemens.com/productcert/html/ssa-613116.html"}],"providerMetadata":{"shortName":"siemens-SADP","orgId":"0b142b55-0307-4c5a-b3c9-f314f3fb7c5e","dateUpdated":"2026-10-15T00:38:29.232Z"},"x_adpType":"supplier"}]}}}