CVE-2023-54317

Summary

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.

Affected Software

VendorProductVersion RangeStatus
LinuxLinuxc6cd92fcabd6cc78bb1808c6a18245c842722fc1 < b7f8892f672222dbfcc721f51edc03963212b249affected
LinuxLinuxd4c637af2e56ee1ec66ee34d0ac5a13c75911aec < 98e311be44dbe31ad9c42aa067b2359bac451fdaaffected
LinuxLinuxa00f5276e26636cbf72f24f79831026d2e2868e7 < 3c4a56ef7c538d16c1738ba0ccea9e7146105b5aaffected
LinuxLinuxa00f5276e26636cbf72f24f79831026d2e2868e7 < f2b478228bfdd11e358c5bc197561331f5d5c394affected
LinuxLinuxa00f5276e26636cbf72f24f79831026d2e2868e7 < ff60b2bb680ebcaf8890814dd51084a022891469affected
LinuxLinuxa00f5276e26636cbf72f24f79831026d2e2868e7 < be360c83f2d810493c04f999d69ec9152981e0c0affected
LinuxLinuxa00f5276e26636cbf72f24f79831026d2e2868e7 < 63d31617883d64b43b0e2d529f0751f40713ecaeaffected
LinuxLinuxa00f5276e26636cbf72f24f79831026d2e2868e7 < f50714b57aecb6b3dc81d578e295f86d9c73f078affected
LinuxLinux1ed7c9f45fb893877ffa7cedd7aa61beaadbb328affected
LinuxLinux4.14.158 < 4.14.308affected
LinuxLinux4.19.88 < 4.19.276affected
LinuxLinux4.9.206 < 4.10affected
LinuxLinux5.0affected
LinuxLinux0 < 5.0unaffected
LinuxLinux4.14.308 <= 4.14.*unaffected
LinuxLinux4.19.276 <= 4.19.*unaffected
LinuxLinux5.4.235 <= 5.4.*unaffected
LinuxLinux5.10.173 <= 5.10.*unaffected
LinuxLinux5.15.99 <= 5.15.*unaffected
LinuxLinux6.1.16 <= 6.1.*unaffected
LinuxLinux6.2.3 <= 6.2.*unaffected
LinuxLinux6.3 <= *unaffected

Weaknesses

References