← All Advisories
Reported from OT-Advisories.com as of

CVE-2026-89648

Last refreshed2026-10-17

Status: UPDATED  |  Advisory ID: CVE-2026-89648

Key Details

CVECVE-2026-89648
CVSS Score / Version
7.5 (High) / CVSS v3.1
Updated2026-10-16
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CVSS Prose
attack vector is network; attack complexity is low; privileges required is none; user interaction is none; scope is unchanged; confidentiality impact is none; integrity impact is none; availability impact is high.
Affected products
Linux Kernel

Affected Products, Subsystems & Sectors

VendorProductAffected VersionsPatch Status
LinuxLinux Kernel
SubsystemsOT Supporting Infrastructure
SectorsAll Sectors

What to Know

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. (NVD)

What to Do

Monitor Linux's web page for any future patch releases.

References

SourceReference
NVDhttps://nvd.nist.gov/vuln/detail/CVE-2026-89648
CVEhttps://www.cve.org/CVERecord?id=CVE-2026-89648
Report compilation © 2026 OT-Advisories.com  ·  CC BY 4.0  ·  Source materials remain the property of their respective publishers as cited.