CVE-2023-54317
Description
In the Linux kernel, the following vulnerability has been resolved:
dm flakey: don't corrupt the zero page
When we need to zero some range on a block device, the function __blkdev_issue_zero_pages submits a write bio with the bio vector pointing to the zero page. If we use dm-flakey with corrupt bio writes option, it will corrupt the content of the zero page which results in crashes of various userspace programs. Glibc assumes that memory returned by mmap is zeroed and it uses it for calloc implementation; if the newly mapped memory is not zeroed, calloc will return non-zeroed memory.
Fix this bug by testing if the page is equal to ZERO_PAGE(0) and avoiding the corruption in this case.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
dm-flakey corrupts the shared zero page when corrupting write bios, causing userspace memory corruption and crashes.
Vulnerability
In the Linux kernel's device-mapper flakey target, the corrupt_bio_write feature is designed to intentionally corrupt write bios for testing. However, when a write bio uses the kernel's shared zero page (ZERO_PAGE(0)) — as done by __blkdev_issue_zero_pages to zero a block range — the corruption modifies the zero page itself. Since the zero page is shared across the system, this causes non-zeroed memory to be returned to userspace, breaking assumptions made by glibc's calloc and leading to crashes in various userspace programs [1][2][3].
ExploitationAn attacker with local access and the ability to trigger a write-zero operation on a block device using dm-flakey with corrupt_bio_write enabled can cause the corruption. No special privileges beyond the ability to configure device-mapper are required, but the attack surface is limited to systems where dm-flakey is explicitly loaded and configured for testing or fault injection.
ImpactThe corruption of the zero page results in memory that should be zeroed containing arbitrary data. This violates the fundamental guarantee that newly mapped memory is zeroed, which glibc's calloc relies on. Consequently, programs may read uninitialized data, leading to unpredictable behavior, data corruption, or crashes. The impact is system-wide because the zero page is a single zero page is shared by all processes.
MitigationThe fix, committed to the Linux kernel stable tree, adds a check in the dm-flakey corruption code to skip corrupting the bio if the page is equal to ZERO_PAGE(0) [1][2][3]. Users should apply the latest kernel updates from their distribution. There is no known workaround other than avoiding the use of dm-flakey with corrupt_bio_write on systems where zero-page writes may occur.
AI Insight generated on May 19, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.
Affected products
1Patches
8f50714b57aecb7f8892f672298e311be44db3c4a56ef7c53f2b478228bfdff60b2bb680ebe360c83f2d863d31617883dVulnerability mechanics
Synthesis attempt was rejected by the grounding validator. Re-run pending.
References
8- git.kernel.org/stable/c/3c4a56ef7c538d16c1738ba0ccea9e7146105b5anvd
- git.kernel.org/stable/c/63d31617883d64b43b0e2d529f0751f40713ecaenvd
- git.kernel.org/stable/c/98e311be44dbe31ad9c42aa067b2359bac451fdanvd
- git.kernel.org/stable/c/b7f8892f672222dbfcc721f51edc03963212b249nvd
- git.kernel.org/stable/c/be360c83f2d810493c04f999d69ec9152981e0c0nvd
- git.kernel.org/stable/c/f2b478228bfdd11e358c5bc197561331f5d5c394nvd
- git.kernel.org/stable/c/f50714b57aecb6b3dc81d578e295f86d9c73f078nvd
- git.kernel.org/stable/c/ff60b2bb680ebcaf8890814dd51084a022891469nvd
News mentions
0No linked articles in our index yet.