KernelScan.io

CRITICAL

ceph AuthDone Buffer Overflow

CVE-2026-22984

CVSS 9.8 / 10.0 NVD

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

KernelScan AI9.8CRITICAL

01

In the Linux kernel, the following vulnerability has been resolved: libceph: prevent potential out-of-bounds reads in handle_auth_done() Perform an explicit bounds check on payload_len to avoid a possible out-of-bounds access in the callout. [ idryomov: changelog ]

02

Engine v0.2.0

Risk summary

A critical vulnerability in Ceph's network messaging allows remote attackers to cause out-of-bounds memory reads by sending malformed authentication messages. This could lead to information disclosure, denial of service, or potentially code execution in Ceph storage clusters. The vulnerability is particularly concerning for internet-facing or multi-tenant Ceph deployments.

Affectednet/ceph/messenger_v2.c

Vulnerability analysis

Root Cause: The handle_auth_done() function in the Ceph messenger v2 protocol implementation fails to validate that the received payload_len value does not exceed the remaining buffer size before attempting to access the payload data. After decoding the payload_len field from the network message, the code proceeds to use this value in subsequent operations without ensuring sufficient data is available in the buffer.

Attack Surface: This vulnerability affects network-facing Ceph storage clusters that use the msgr2.1 protocol for authentication. An attacker with network access to the Ceph cluster could send malformed authentication messages with crafted payload_len values to trigger out-of-bounds reads. The attack requires network connectivity to Ceph monitor or OSD services but does not require authentication since it occurs during the authentication handshake phase.

Fix Mechanism: The patch adds a bounds check using ceph_decode_need() macro immediately after decoding payload_len. This macro verifies that at least payload_len bytes remain in the buffer between the current position (p) and the end marker (end). If insufficient data is available, the macro triggers a 'bad' label jump, preventing the out-of-bounds access.

03

BranchFixed inPatch commit
5.155.15.198194cfe2af4d2
6.16.1.16179fe3511db41
6.126.12.662802ef3380fa
6.186.18.62d653bb63d59
6.66.6.121ef208ea331ef
mainline6.19818156caffbf