CVE-2023-52501
Severity CVSS v4.0:
Pending analysis
Type:
CWE-125
Out-of-bounds Read
Publication date:
02/03/2024
Last modified:
13/01/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
ring-buffer: Do not attempt to read past "commit"<br />
<br />
When iterating over the ring buffer while the ring buffer is active, the<br />
writer can corrupt the reader. There&#39;s barriers to help detect this and<br />
handle it, but that code missed the case where the last event was at the<br />
very end of the page and has only 4 bytes left.<br />
<br />
The checks to detect the corruption by the writer to reads needs to see the<br />
length of the event. If the length in the first 4 bytes is zero then the<br />
length is stored in the second 4 bytes. But if the writer is in the process<br />
of updating that code, there&#39;s a small window where the length in the first<br />
4 bytes could be zero even though the length is only 4 bytes. That will<br />
cause rb_event_length() to read the next 4 bytes which could happen to be off the<br />
allocated page.<br />
<br />
To protect against this, fail immediately if the next event pointer is<br />
less than 8 bytes from the end of the commit (last byte of data), as all<br />
events must be a minimum of 8 bytes anyway.
Impact
Base Score 3.x
7.10
Severity 3.x
HIGH
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.10.198 (excluding) | |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.15.134 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (including) | 6.1.56 (including) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.5.6 (including) |
| cpe:2.3:o:linux:linux_kernel:6.6:rc1:*:*:*:*:*:* |
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/344f2f3e61a90f0150c754796ec9a17fcaeec03d
- https://git.kernel.org/stable/c/75fc9e99b3a71006720ad1e029db11a4b5c32d4a
- https://git.kernel.org/stable/c/95a404bd60af6c4d9d8db01ad14fe8957ece31ca
- https://git.kernel.org/stable/c/b08a4938229dbb530a35c41b83002a1457c6ff49
- https://git.kernel.org/stable/c/cee5151c5410e868826b8afecfb356f3799ebea3
- https://git.kernel.org/stable/c/344f2f3e61a90f0150c754796ec9a17fcaeec03d
- https://git.kernel.org/stable/c/75fc9e99b3a71006720ad1e029db11a4b5c32d4a
- https://git.kernel.org/stable/c/95a404bd60af6c4d9d8db01ad14fe8957ece31ca
- https://git.kernel.org/stable/c/b08a4938229dbb530a35c41b83002a1457c6ff49
- https://git.kernel.org/stable/c/cee5151c5410e868826b8afecfb356f3799ebea3



