{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2025-71161","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2026-01-13T15:30:19.665Z","datePublished":"2026-01-23T15:23:59.464Z","dateUpdated":"2026-09-08T08:44:03.288Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-08-05T12:12:26.264Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\ndm-verity: disable recursive forward error correction\n\nThere are two problems with the recursive correction:\n\n1. It may cause denial-of-service. In fec_read_bufs, there is a loop that\nhas 253 iterations. For each iteration, we may call verity_hash_for_block\nrecursively. There is a limit of 4 nested recursions - that means that\nthere may be at most 253^4 (4 billion) iterations. Red Hat QE team\nactually created an image that pushes dm-verity to this limit - and this\nimage just makes the udev-worker process get stuck in the 'D' state.\n\n2. It doesn't work. In fec_read_bufs we store data into the variable\n\"fio->bufs\", but fio bufs is shared between recursive invocations, if\n\"verity_hash_for_block\" invoked correction recursively, it would\noverwrite partially filled fio->bufs."}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","baseScore":7.5,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:N - In a reasonable cloud or network-boot deployment, dm-verity data, hash, and FEC devices can be NBD-backed, allowing attacker-controlled TCP replies to supply the crafted blocks directly to the verification path.\nAC:L - A static crafted image deterministically drives FEC scanning into as many as 253^4 recursive iterations, as demonstrated by Red Hat QE. No race or uncontrollable memory layout is required.\nPR:N - DM table creation requires CAP_SYS_ADMIN in the initial user namespace, but that is victim-side setup. A malicious configured network-block peer requires no account or privilege on the affected system to return crafted blocks.\nUI:N - Once the mapping is active, automatic udev probing, boot-time access, or ordinary filesystem I/O triggers FEC without requiring a user action.\nS:U - The vulnerable processing and resulting availability loss occur within the same kernel security authority, without crossing a VM, IOMMU, or sandbox boundary.\nC:N - Recursive calls only clobber bounded per-I/O Reed-Solomon working data, and corrected output is cryptographically revalidated before being copied to its destination. The flaw provides no disclosure or read primitive.\nI:N - Although nested decoding corrupts outer intermediate results, the wanted digest is checked before corrected data is used, so failure produces an I/O error rather than attacker-selected data. No arbitrary-write or control-flow primitive results from this flaw.\nA:H - The crafted blocks can force approximately 4.1 billion iterations and leave I/O submitters such as udev workers blocked in uninterruptible sleep. On a boot or operational image this can prevent startup or render the device and dependent services unavailable."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/md/dm-verity-fec.c","drivers/md/dm-verity-fec.h","drivers/md/dm-verity-target.c"],"versions":[{"version":"a739ff3f543afbb4a041c16cd0182c8e8d366e70","lessThan":"8b821ca892cfeeaf0bedc9fc72717294f67144d5","status":"affected","versionType":"git"},{"version":"a739ff3f543afbb4a041c16cd0182c8e8d366e70","lessThan":"e227d2b229c7529bd98d348efc55262ccf24ab35","status":"affected","versionType":"git"},{"version":"a739ff3f543afbb4a041c16cd0182c8e8d366e70","lessThan":"897d9006e75f46f8bd7df78faa424327ae6a4bcf","status":"affected","versionType":"git"},{"version":"a739ff3f543afbb4a041c16cd0182c8e8d366e70","lessThan":"4220cb37406915c926c0e4a3dbab77cd9cceeb1e","status":"affected","versionType":"git"},{"version":"a739ff3f543afbb4a041c16cd0182c8e8d366e70","lessThan":"232948cf600fba69aff36b25d85ef91a73a35756","status":"affected","versionType":"git"},{"version":"a739ff3f543afbb4a041c16cd0182c8e8d366e70","lessThan":"d9f3e47d3fae0c101d9094bc956ed24e7a0ee801","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/dm-verity-fec.c","drivers/md/dm-verity-fec.h","drivers/md/dm-verity-target.c"],"versions":[{"version":"4.5","status":"affected"},{"version":"0","lessThan":"4.5","status":"unaffected","versionType":"semver"},{"version":"5.15.209","lessThanOrEqual":"5.15.*","status":"unaffected","versionType":"semver"},{"version":"6.1.167","lessThanOrEqual":"6.1.*","status":"unaffected","versionType":"semver"},{"version":"6.6.130","lessThanOrEqual":"6.6.*","status":"unaffected","versionType":"semver"},{"version":"6.12.78","lessThanOrEqual":"6.12.*","status":"unaffected","versionType":"semver"},{"version":"6.18.6","lessThanOrEqual":"6.18.*","status":"unaffected","versionType":"semver"},{"version":"6.19","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.5","versionEndExcluding":"5.15.209"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.5","versionEndExcluding":"6.1.167"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.5","versionEndExcluding":"6.6.130"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.5","versionEndExcluding":"6.12.78"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.5","versionEndExcluding":"6.18.6"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.5","versionEndExcluding":"6.19"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/8b821ca892cfeeaf0bedc9fc72717294f67144d5"},{"url":"https://git.kernel.org/stable/c/e227d2b229c7529bd98d348efc55262ccf24ab35"},{"url":"https://git.kernel.org/stable/c/897d9006e75f46f8bd7df78faa424327ae6a4bcf"},{"url":"https://git.kernel.org/stable/c/4220cb37406915c926c0e4a3dbab77cd9cceeb1e"},{"url":"https://git.kernel.org/stable/c/232948cf600fba69aff36b25d85ef91a73a35756"},{"url":"https://git.kernel.org/stable/c/d9f3e47d3fae0c101d9094bc956ed24e7a0ee801"}],"title":"dm-verity: disable recursive forward error correction","x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"x_adpType":"supplier","providerMetadata":{"orgId":"0b142b55-0307-4c5a-b3c9-f314f3fb7c5e","shortName":"siemens-SADP","dateUpdated":"2026-09-08T08:44:03.288Z"},"affected":[{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518-4 PN/DP MFP","versions":[{"status":"affected","version":"V3.1.6","lessThan":"*","versionType":"custom"}],"defaultStatus":"unknown"},{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518-4 PN/DP MFP","versions":[{"status":"affected","version":"V3.1.5","lessThan":"*","versionType":"custom"}],"defaultStatus":"unknown"},{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518-4 PN/DP MFP","versions":[{"status":"affected","version":"V3.1.6","lessThan":"*","versionType":"custom"}],"defaultStatus":"unknown"},{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518-4 PN/DP MFP","versions":[{"status":"affected","version":"V3.1.5","lessThan":"*","versionType":"custom"}],"defaultStatus":"unknown"},{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP","versions":[{"status":"affected","version":"V3.1.6","lessThan":"*","versionType":"custom"}],"defaultStatus":"unknown"},{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP","versions":[{"status":"affected","version":"V3.1.5","lessThan":"*","versionType":"custom"}],"defaultStatus":"unknown"},{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP","versions":[{"status":"affected","version":"V3.1.6","lessThan":"*","versionType":"custom"}],"defaultStatus":"unknown"},{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP","versions":[{"status":"affected","version":"V3.1.5","lessThan":"*","versionType":"custom"}],"defaultStatus":"unknown"},{"vendor":"Siemens","product":"SIPLUS S7-1500 CPU 1518-4 PN/DP MFP","versions":[{"status":"affected","version":"V3.1.6","lessThan":"*","versionType":"custom"}],"defaultStatus":"unknown"},{"vendor":"Siemens","product":"SIPLUS S7-1500 CPU 1518-4 PN/DP MFP","versions":[{"status":"affected","version":"V3.1.5","lessThan":"*","versionType":"custom"}],"defaultStatus":"unknown"}],"references":[{"url":"https://cert-portal.siemens.com/productcert/html/ssa-082556.html"},{"url":"https://cert-portal.siemens.com/productcert/html/ssa-019113.html"}]}]}}