CVE-2023-52497
Severity CVSS v4.0:
Pending analysis
Type:
CWE-787
Out-of-bounds Write
Publication date:
01/03/2024
Last modified:
09/01/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
erofs: fix lz4 inplace decompression<br />
<br />
Currently EROFS can map another compressed buffer for inplace<br />
decompression, that was used to handle the cases that some pages of<br />
compressed data are actually not in-place I/O.<br />
<br />
However, like most simple LZ77 algorithms, LZ4 expects the compressed<br />
data is arranged at the end of the decompressed buffer and it<br />
explicitly uses memmove() to handle overlapping:<br />
__________________________________________________________<br />
|_ direction of decompression --> ____ |_ compressed data _|<br />
<br />
Although EROFS arranges compressed data like this, it typically maps two<br />
individual virtual buffers so the relative order is uncertain.<br />
Previously, it was hardly observed since LZ4 only uses memmove() for<br />
short overlapped literals and x86/arm64 memmove implementations seem to<br />
completely cover it up and they don&#39;t have this issue. Juhyung reported<br />
that EROFS data corruption can be found on a new Intel x86 processor.<br />
After some analysis, it seems that recent x86 processors with the new<br />
FSRM feature expose this issue with "rep movsb".<br />
<br />
Let&#39;s strictly use the decompressed buffer for lz4 inplace<br />
decompression for now. Later, as an useful improvement, we could try<br />
to tie up these two buffers together in the correct order.
Impact
Base Score 3.x
6.10
Severity 3.x
MEDIUM
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.3 (including) | 5.4.285 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.5 (including) | 5.10.211 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.15.150 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (including) | 6.1.76 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.6.15 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.7.3 (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/33bf23c9940dbd3a22aad7f0cda4c84ed5701847
- https://git.kernel.org/stable/c/3c12466b6b7bf1e56f9b32c366a3d83d87afb4de
- https://git.kernel.org/stable/c/77cbc04a1a8610e303a0e0d74f2676667876a184
- https://git.kernel.org/stable/c/9ff2d260b25df6fe1341a79113d88fecf6bd553e
- https://git.kernel.org/stable/c/a0180e940cf1aefa7d516e20b259ad34f7a8b379
- https://git.kernel.org/stable/c/bffc4cc334c5bb31ded54bc3cfd651735a3cb79e
- https://git.kernel.org/stable/c/f36d200a80a3ca025532ed60dd1ac21b620e14ae
- https://git.kernel.org/stable/c/33bf23c9940dbd3a22aad7f0cda4c84ed5701847
- https://git.kernel.org/stable/c/3c12466b6b7bf1e56f9b32c366a3d83d87afb4de
- https://git.kernel.org/stable/c/77cbc04a1a8610e303a0e0d74f2676667876a184
- https://git.kernel.org/stable/c/a0180e940cf1aefa7d516e20b259ad34f7a8b379
- https://git.kernel.org/stable/c/bffc4cc334c5bb31ded54bc3cfd651735a3cb79e
- https://git.kernel.org/stable/c/f36d200a80a3ca025532ed60dd1ac21b620e14ae
- https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html



