CVE-2021-47114
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
15/03/2024
Last modified:
04/04/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
ocfs2: fix data corruption by fallocate<br />
<br />
When fallocate punches holes out of inode size, if original isize is in<br />
the middle of last cluster, then the part from isize to the end of the<br />
cluster will be zeroed with buffer write, at that time isize is not yet<br />
updated to match the new size, if writeback is kicked in, it will invoke<br />
ocfs2_writepage()->block_write_full_page() where the pages out of inode<br />
size will be dropped. That will cause file corruption. Fix this by<br />
zero out eof blocks when extending the inode size.<br />
<br />
Running the following command with qemu-image 4.2.1 can get a corrupted<br />
coverted image file easily.<br />
<br />
qemu-img convert -p -t none -T none -f qcow2 $qcow_image \<br />
-O qcow2 -o compat=1.1 $qcow_image.conv<br />
<br />
The usage of fallocate in qemu is like this, it first punches holes out<br />
of inode size, then extend the inode size.<br />
<br />
fallocate(11, FALLOC_FL_KEEP_SIZE|FALLOC_FL_PUNCH_HOLE, 2276196352, 65536) = 0<br />
fallocate(11, 0, 2276196352, 65536) = 0<br />
<br />
v1: https://www.spinics.net/lists/linux-fsdevel/msg193999.html<br />
v2: https://lore.kernel.org/linux-fsdevel/20210525093034.GB4112@quack2.suse.cz/T/
Impact
Base Score 3.x
5.50
Severity 3.x
MEDIUM
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.4.272 (excluding) | |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.5 (including) | 4.9.272 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.10 (including) | 4.14.236 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.15 (including) | 4.19.194 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.20 (including) | 5.4.125 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.5 (including) | 5.10.43 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.12.10 (excluding) |
| cpe:2.3:o:linux:linux_kernel:5.13:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:5.13:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:5.13:rc3:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:5.13:rc4:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/0a31dd6fd2f4e7db538fb6eb1f06973d81f8dd3b
- https://git.kernel.org/stable/c/33e03adafb29eedae1bae9cdb50c1385279fcf65
- https://git.kernel.org/stable/c/624fa7baa3788dc9e57840ba5b94bc22b03cda57
- https://git.kernel.org/stable/c/6bba4471f0cc1296fe3c2089b9e52442d3074b2e
- https://git.kernel.org/stable/c/a1700479524bb9cb5e8ae720236a6fabd003acae
- https://git.kernel.org/stable/c/c8d5faee46242c3f33b8a71a4d7d52214785bfcc
- https://git.kernel.org/stable/c/cc2edb99ea606a45182b5ea38cc8f4e583aa0774
- https://git.kernel.org/stable/c/cec4e857ffaa8c447f51cd8ab4e72350077b6770
- https://git.kernel.org/stable/c/0a31dd6fd2f4e7db538fb6eb1f06973d81f8dd3b
- https://git.kernel.org/stable/c/33e03adafb29eedae1bae9cdb50c1385279fcf65
- https://git.kernel.org/stable/c/624fa7baa3788dc9e57840ba5b94bc22b03cda57
- https://git.kernel.org/stable/c/6bba4471f0cc1296fe3c2089b9e52442d3074b2e
- https://git.kernel.org/stable/c/a1700479524bb9cb5e8ae720236a6fabd003acae
- https://git.kernel.org/stable/c/c8d5faee46242c3f33b8a71a4d7d52214785bfcc
- https://git.kernel.org/stable/c/cc2edb99ea606a45182b5ea38cc8f4e583aa0774
- https://git.kernel.org/stable/c/cec4e857ffaa8c447f51cd8ab4e72350077b6770



