CVE-2023-52636

CVE-2023-52636

High · published April 2, 2024

CVSS v3.1
8.2
EPSS
1%
Percentile
43.0
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

libceph: just wait for more data to be available on the socket

A short read may occur while reading the message footer from the

socket. Later, when the socket is ready for another read, the

messenger invokes all read_partial_*() handlers, including

read_partial_sparse_msg_data(). The expectation is that

read_partial_sparse_msg_data() would bail, allowing the messenger to

invoke read_partial() for the footer and pick up where it left off.

However read_partial_sparse_msg_data() violates that and ends up

calling into the state machine in the OSD client. The sparse-read

state machine assumes that it's a new op and interprets some piece of

the footer as the sparse-read header and returns bogus extents/data

length, etc.

To determine whether read_partial_sparse_msg_data() should bail, let's

reuse cursor->total_resid. Because once it reaches to zero that means

all the extents and data have been successfully received in last read,

else it could break out when partially reading any of the extents and

data. And then osd_sparse_read() could continue where it left off.

[ idryomov: changelog ]

The record
Technical detail
CVSS v3.1
8.2 · HIGH
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H
CVSS v4.0
Not supplied
EPSS
0.00515 · 43.0th percentile
Published
2024-04-02T11:15Z
Affected products (5)
ProductVersionsFixed in
linux/linux_kernel≥ 6.6, < 6.6.176.6.17
linux/linux_kernel≥ 6.7, < 6.7.56.7.5
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
References (6)
EPSS history
Timeline
  • 02 APR 07:01Z
    libceph: just wait for more data to be available on the socket
    cvelistv5