CVE-2026-52957: Linux Kernel Ceph Null Pointer Dereference Denial of Service
CVE-2026-52957 is a null pointer dereference vulnerability in the Linux kernel's libceph library that affects how Ceph OSD map messages are decoded. When a Ceph node receives an OSD map containing a CRUSH map with optional choose_args parameters, a specially crafted or corrupted message can reference a bucket index that exists but points to a NULL entry. This causes the kernel to crash when it tries to access that non-existent bucket. The vulnerability requires network access but no authentication, and results in denial of service to the affected system.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 7.5 HIGH · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
- Weaknesses (CWE)
- CWE-476
- Affected products
- 9 configuration(s)
- Published / Modified
- 2026-06-24 / 2026-07-14
NVD description (verbatim)
In the Linux kernel, the following vulnerability has been resolved: libceph: Fix potential null-ptr-deref in decode_choose_args() A message of type CEPH_MSG_OSD_MAP contains an OSD map that itself contains a CRUSH map. When decoding this CRUSH map in crush_decode(), an array of max_buckets CRUSH buckets is decoded, where some indices may not refer to actual buckets and are therefore set to NULL. The received CRUSH map may optionally contain choose_args that get decoded in decode_choose_args(). When decoding a crush_choose_arg_map, a series of choose_args for different buckets is decoded, with the bucket_index being read from the incoming message. It is only checked that the bucket index does not exceed max_buckets, but not that it doesn't point to an index with a NULL bucket. If a (potentially corrupted) message contains a crush_choose_arg_map including such a bucket_index, a null pointer dereference may occur in the subsequent processing when attempting to access the bucket with the given index. This patch fixes the issue by extending the affected check. Now, it is only attempted to access the bucket if it is not NULL.
8 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
The vulnerability exists in the decode_choose_args() function within libceph's CRUSH map decoding logic. CEPH_MSG_OSD_MAP messages contain CRUSH maps that are decoded in crush_decode(), which allocates an array of max_buckets entries. Some indices in this array legitimately remain NULL if they don't correspond to actual buckets. However, when decode_choose_args() processes optional choose_args structures from the incoming message, it reads a bucket_index and only validates that this index is less than max_buckets—it fails to verify that the bucket at that index is non-NULL. If a malicious or corrupted message contains a bucket_index pointing to a NULL entry, subsequent code attempting to dereference that bucket pointer triggers a null pointer dereference (CWE-476). The fix adds an additional NULL check before accessing the bucket, preventing the dereference.
Business impact
This vulnerability can cause kernel panic and system unavailability on any Linux system running vulnerable kernel versions that participate in a Ceph cluster. For organizations using Ceph for distributed storage, this represents a direct threat to service availability. An unauthenticated remote attacker on the network can trigger a denial of service by sending a crafted OSD map message, potentially disrupting access to Ceph-backed storage infrastructure. Recovery requires manual system restart, and widespread exploitation could compromise multiple cluster nodes.
Affected systems
The Linux kernel is affected across multiple versions. Systems that are particularly at risk include Ceph cluster nodes (OSD and monitor daemons), Ceph clients, and any Linux system with libceph enabled that communicates with a Ceph cluster. The vulnerability affects kernel versions prior to the patched release; consult the Linux kernel repository and your distribution's security advisories for specific affected version ranges.
Exploitability
Exploitation requires network access to a system running a vulnerable kernel with Ceph networking active, but requires no authentication or user interaction. The attack vector is network-based with low complexity—an attacker simply sends a malformed OSD map message with a crafted choose_args structure. The barrier to exploitation is low, making this vulnerability practically exploitable in production Ceph deployments accessible to untrusted networks. No exploit kit is required; the logic to construct such a message is straightforward.
Remediation
Apply kernel security patches from your Linux distribution that include the fix for decode_choose_args(). The patch adds a NULL pointer check before dereferencing bucket indices in choose_args decoding. If patching cannot be immediately deployed, consider network segmentation to restrict unauthenticated access to Ceph cluster communication ports, and monitor for abnormal Ceph node restarts that could indicate exploitation attempts.
Patch guidance
Contact your Linux distribution vendor for availability of patched kernel releases. Kernel updates addressing this vulnerability should be prioritized and tested in a staging environment before production deployment, as kernel updates typically require system restart. Verify the patch includes the NULL check validation in decode_choose_args() before applying.
Detection guidance
Monitor for repeated kernel crashes or panics in syslog on Ceph nodes, particularly those with unusual timing coinciding with network activity. System monitoring tools can alert on unexpected OSD or monitor daemon restarts. Network intrusion detection systems may flag malformed CEPH_MSG_OSD_MAP messages, though detection is challenging without protocol-level validation. Kernel audit logs may capture the null pointer dereference event before the system crashes.
Why prioritize this
CVE-2026-52957 merits immediate patching priority due to its CVSS 7.5 (HIGH) severity, unauthenticated network exploitability, and direct impact on system availability. Organizations running Ceph clusters should treat this as critical. The low attack complexity and high impact on confidentiality—potential service disruption—combined with the lack of user interaction requirement make this a high-priority remediation target, especially for systems exposed to untrusted networks.
Risk score, explained
The CVSS 3.1 score of 7.5 (HIGH) reflects a network-accessible vulnerability with no authentication required and low complexity (AV:N/AC:L/PR:N). The impact is primarily availability (A:H)—the vulnerability causes denial of service through kernel crash. There is no direct confidentiality or integrity impact to data, but availability impact to the kernel itself is severe. The lack of user interaction (UI:N) and the fact that the attack affects the entire system (S:U) rather than an isolated component elevate the score.
Frequently asked questions
Can this vulnerability be exploited remotely without Ceph cluster membership?
Yes. An unauthenticated attacker with network access to a system running vulnerable kernel with Ceph networking enabled can send a crafted OSD map message to trigger the null pointer dereference. No prior authentication or cluster membership is required—network reachability alone is sufficient.
Does this vulnerability affect Ceph storage data integrity or confidentiality?
No. The vulnerability causes denial of service through kernel crash. It does not directly compromise the confidentiality or integrity of stored data. However, the resulting system unavailability may indirectly prevent legitimate access to Ceph-stored data.
Are non-Ceph systems affected if they run the vulnerable kernel?
Only if they have libceph compiled into the kernel and are actively communicating with Ceph cluster nodes. Systems that do not participate in Ceph clusters are not affected, even if running the same vulnerable kernel version.
What is the difference between a NULL bucket and a bucket that simply contains no data?
The CRUSH map allocates space for a fixed number of bucket indices (max_buckets), but not all indices correspond to actual buckets. NULL entries represent allocated but unused indices. A valid bucket may be empty of contents, but the pointer itself is non-NULL. The vulnerability occurs when code tries to dereference a NULL pointer, not when accessing an empty bucket.
This analysis is based on the published CVE record and kernel vulnerability description as of the modification date. Exploit details, proof-of-concept code, and specific patch version numbers are intentionally omitted. Organizations should verify patch availability and applicability with their Linux distribution vendor and consult official Ceph and Linux kernel security advisories for complete guidance. This is for informational purposes only and does not constitute legal, technical, or professional security advice. Source: NVD (public-domain), retrieved 2026-07-30. Analysis generated by SEC.co (claude-haiku-4-5).
Related vulnerabilities
- CVE-2026-46110HIGHLinux stmmac NULL Dereference DoS Vulnerability
- CVE-2026-46114HIGHLinux Kernel RDMA RXE Remote Memory Leak via Malformed ATOMIC_WRITE
- CVE-2026-52922HIGHLinux batman-adv NULL Pointer Dereference DoS
- CVE-2026-52929HIGHLinux SCTP Null-Pointer Dereference in Stream Rollback
- CVE-2026-52951HIGHLinux Xe DRM DMA-buf Race Condition – Local DoS via GPU Memory Import
- CVE-2026-8035HIGHNI-PAL Kernel Driver NULL Pointer Dereference DoS Vulnerability
- CVE-2025-71313MEDIUMLinux Kernel PCI Endpoint NULL Pointer Dereference
- CVE-2026-46118MEDIUMLinux Kernel PAPR Hypervisor Pipe Null Pointer Dereference (POWER Systems)