Description
In the Linux kernel, the following vulnerability has been resolved: libceph: reset sparse-read state in osd_fault() When a fault occurs, the connection is abandoned, reestablished, and any pending operations are retried. The OSD client tracks the progress of a sparse-read reply using a separate state machine, largely independent of the messenger's state. If a connection is lost mid-payload or the sparse-read state machine returns an error, the sparse-read state is not reset. The OSD client will then interpret the beginning of a new reply as the continuation of the old one. If this makes the sparse-read machinery enter a failure state, it may never recover, producing loops like: libceph: [0] got 0 extents libceph: data len 142248331 != extent len 0 libceph: osd0 (1)...:6801 socket error on read libceph: data len 142248331 != extent len 0 libceph: osd0 (1)...:6801 socket error on read Therefore, reset the sparse-read state in osd_fault(), ensuring retries start from a clean state.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
f628d799972799023d32c2542bb2639eb8c4f84e to < 90a60fe61908afa0eaf7f8fcf1421b9b50e5f7ffaffectedf628d799972799023d32c2542bb2639eb8c4f84e to < e94075e950a6598e710b9f7dffea5aa388f40313affectedf628d799972799023d32c2542bb2639eb8c4f84e to < 10b7c72810364226f7b27916ea3e2a4f870bc04baffectedf628d799972799023d32c2542bb2639eb8c4f84e to < 11194b416ef95012c2cfe5f546d71af07b639e93affected
Linux Linux
Default version status: affected
6.6affected0 to < 6.6unaffected6.6.121 to ≤ 6.6.*unaffected6.12.66 to ≤ 6.12.*unaffected6.18.6 to ≤ 6.18.*unaffected6.19 to ≤ *unaffected