HIGH Introduced in 6.6
ceph SparseExtent Panic
CVE-2026-89657
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
KernelScan AI6.5MEDIUM
01Description
In the Linux kernel, the following vulnerability has been resolved: libceph: validate OSD extent maps before cursor advance net/ceph/osd_client.c:osd_sparse_read() validates that the sparse-read data length matches the summed extent lengths, but it does not validate that each OSD-supplied extent is monotonic and lies inside the original request range. A malformed authenticated OSD reply can advertise a far-forward nonzero extent offset with a matching data length and make the client advance the message-data cursor beyond the request buffer. This reaches the BUG_ON(!*length) assertion in ceph_msg_data_next() from the client receive path. Impact: A malicious or compromised authenticated Ceph OSD peer can crash a kernel Ceph client via a malformed sparse-read reply. Reject sparse extent maps that overflow, move backwards, overlap, or extend outside the original sparse-read request before advancing the cursor. [ idryomov: perform sparse_extent_map_valid() check a bit earlier, in CEPH_SPARSE_READ_DATA_LEN instead of CEPH_SPARSE_READ_DATA_PRE state ]
02KernelScan AI Analysis
Risk summary
A malicious or compromised authenticated Ceph OSD can send a malformed sparse-read reply that crashes any kernel Ceph client connected to it. The bug is in the client-side reply processing path and requires no special privileges on the client beyond having a Ceph mount active. Any system mounting Ceph filesystems is at risk if an OSD peer is compromised or rogue.
Vulnerability analysis
The kernel Ceph client processes sparse-read replies from OSD peers without checking that the extent offsets in the reply are monotonic, non-overlapping, and within the original request range. A malformed reply with a far-forward extent offset causes the client to advance its receive cursor past the end of the request buffer, triggering an assertion that panics the kernel. The fix adds a validation step that rejects any extent map whose extents overflow, move backwards, overlap, or extend outside the original sparse-read request before the cursor is advanced. The attack is reachable from the network by any authenticated OSD peer in the Ceph cluster; the client side requires only an active Ceph mount, with no elevated local privileges.
Lifecycle
03Fix Versions
| Branch | Introduced | Fixed in | Patch commit |
|---|---|---|---|
| 6.6 | 6.6 | 6.6.157 | 94ae5145c520 |
| 6.12 | 6.6 | 6.12.109 | 058ffa81f944 |
| 6.18 | 6.6 | 6.18.50 | 2571b3588326 |
| 7.2 | 6.6 | 7.2.4 | 201db408872c |
| mainline | 6.6 | 7.3-rc1 | 9ec08b7499a6 |
| cip/6.12 | 6.6 | 6.12.111-cip32 | 058ffa81f944 |