CVE-2026-89648
Received Received - Intake

Integer Overflow in Ceph Linux Kernel

Vulnerability report for CVE-2026-89648, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-09-11

Last updated on: 2026-09-11

Assigner: kernel.org

Description

In the Linux kernel, the following vulnerability has been resolved: ceph: cap delegated inode count in ceph_parse_deleg_inos() ceph_parse_deleg_inos() decodes interval sets of delegated inode numbers from an MDS create-with-delegation reply. For each set it reads a 64-bit start and a 64-bit len with ceph_decode_64_safe(), which only validates that the eight bytes are present in the message, not the value, and then loops over len while inserting entries into s_delegated_inos. len is fully attacker controlled. A malicious or compromised MDS can send one huge interval, many intervals in one reply, duplicate intervals, or repeated replies that accumulate delegated inodes on the same session. The original code bounded none of these and could spin the insert loop or grow the xarray without limit. Bound both dimensions with a single enforcement point. Track the number of delegated inodes held by each MDS session in an atomic counter and grow it only in ceph_insert_deleg_ino(), which uses atomic_add_unless() to refuse to push the count past CEPH_MAX_DELEG_INOS. Because that helper is the only place the counter grows, the per-session population can never exceed the cap, so no separate per-session pre-check is needed. The counter is decremented when async create consumes a delegated inode or when an insert fails, incremented when a delegated inode is restored, initialized with the session xarray, and reset when reconnect destroys the xarray. A per-session cap alone still lets one reply spin the insert loop on duplicate ranges without growing the counter, so also cap the aggregate interval length accepted from a single reply. Together these bound both the loop trip count per reply and the xarray population across replies. The cap is a fixed, client-chosen constant rather than a value derived from the MDS. mds_client_prealloc_inos is a userspace MDS configuration option; it is never sent to the kernel client on the wire, and a server-supplied bound could not be trusted for a defensive limit in any case. The constant is set well above that option's documented default of 1000 (a generous multiple), so legitimate refill behavior is unaffected while the CPU and xarray memory a malformed delegation stream can consume stays bounded. Impact: a malicious or compromised Ceph MDS can no longer make a client spin through an unbounded delegated-inode interval or grow one session's delegated-inode xarray without limit.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-09-11
Last Modified
2026-09-11
Generated
2026-09-12
AI Q&A
2026-09-11
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 1 associated CPE
Vendor Product Version / Range
ceph ceph *

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-UNKNOWN

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability in the Linux kernel's Ceph filesystem allows a malicious or compromised Ceph Metadata Server (MDS) to send specially crafted messages that cause a client to process an unbounded number of delegated inode intervals. The client's ceph_parse_deleg_inos() function lacks proper validation of interval lengths, enabling the MDS to spin the processing loop or exhaust memory by inserting excessive entries into a session's xarray data structure.

Detection Guidance

This vulnerability is specific to the Linux kernel's Ceph filesystem implementation and requires kernel-level inspection. Detection involves checking kernel logs for unusual activity related to Ceph MDS sessions or delegated inode handling. Monitor for high CPU usage or memory consumption by Ceph clients. Use commands like 'dmesg | grep ceph' or 'journalctl -u ceph*' to review Ceph-related kernel messages. If you suspect exploitation, inspect the number of delegated inodes per session using kernel debugging tools.

Impact Analysis

An attacker exploiting this flaw could cause a Ceph client to consume excessive CPU resources or run out of memory, leading to system slowdowns or crashes. This could disrupt access to Ceph storage, affect performance of dependent applications, or potentially enable denial-of-service conditions on affected systems.

Mitigation Strategies

Apply the latest Linux kernel patches that address this vulnerability. Update your Ceph client and server software to versions containing the fix. Restart Ceph services to ensure the patched kernel modules are loaded. Monitor Ceph MDS sessions for abnormal behavior, such as excessive delegated inode counts. If you cannot patch immediately, consider isolating Ceph clients from untrusted MDS servers as a temporary measure.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-89648. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart