CVE-2021-47066
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
29/02/2024
Last modified:
09/01/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
async_xor: increase src_offs when dropping destination page<br />
<br />
Now we support sharing one page if PAGE_SIZE is not equal stripe size. To<br />
support this, it needs to support calculating xor value with different<br />
offsets for each r5dev. One offset array is used to record those offsets.<br />
<br />
In RMW mode, parity page is used as a source page. It sets<br />
ASYNC_TX_XOR_DROP_DST before calculating xor value in ops_run_prexor5.<br />
So it needs to add src_list and src_offs at the same time. Now it only<br />
needs src_list. So the xor value which is calculated is wrong. It can<br />
cause data corruption problem.<br />
<br />
I can reproduce this problem 100% on a POWER8 machine. The steps are:<br />
<br />
mdadm -CR /dev/md0 -l5 -n3 /dev/sdb1 /dev/sdc1 /dev/sdd1 --size=3G<br />
mkfs.xfs /dev/md0<br />
mount /dev/md0 /mnt/test<br />
mount: /mnt/test: mount(2) system call failed: Structure needs cleaning.
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:*:*:*:*:*:*:*:* | 5.10 (including) | 5.10.37 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.11.21 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.12 (including) | 5.12.4 (excluding) |
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/29ffa50f33de824b5491f8239c88c4a0efdd03af
- https://git.kernel.org/stable/c/53f8208e11abd6dde9480dfcb97fecdb1bc2ac18
- https://git.kernel.org/stable/c/cab2e8e5997b592fdb7d02cf2387b4b8e3057174
- https://git.kernel.org/stable/c/ceaf2966ab082bbc4d26516f97b3ca8a676e2af8
- https://git.kernel.org/stable/c/29ffa50f33de824b5491f8239c88c4a0efdd03af
- https://git.kernel.org/stable/c/53f8208e11abd6dde9480dfcb97fecdb1bc2ac18
- https://git.kernel.org/stable/c/cab2e8e5997b592fdb7d02cf2387b4b8e3057174
- https://git.kernel.org/stable/c/ceaf2966ab082bbc4d26516f97b3ca8a676e2af8



