ZeroHour

CVE-2026-89652

niche

Slab buffer overflow in Linux kernel CephFS NFS-export name handling

CVSS 3.1
9.8 critical
EPSS
Published
()
Modified
AI analysis

The Linux kernel's CephFS client contains an out-of-bounds write in the NFS export get_name path: ceph_get_name() and __get_snap_name() memcpy the metadata server (MDS)-supplied filename into a NAME_MAX-sized buffer without first validating its length, then write a NUL terminator past the end. A malicious or compromised Ceph MDS can trigger this by returning a LOOKUPNAME reply whose dname_len exceeds NAME_MAX, producing a slab out-of-bounds write detected by KASAN, with potential for kernel memory corruption and privilege escalation or a system crash on the client. The vulnerable path is only reachable when a CephFS mount is re-exported over NFS (e.g., via NFS-Ganesha or knfsd), and the attacker must control or have compromised the MDS, which is normally a trusted cluster component. The fix introduces ceph_export_copy_name(), which rejects names longer than NAME_MAX with -ENAMETOOLONG before copying. No public proof of concept is known and the flaw is not listed in CISA's KEV catalog.

What to do: Apply a kernel update containing ceph_export_copy_name() as soon as your distribution ships it. Until then, avoid re-exporting CephFS mounts over NFS or ensure only fully trusted, hardened MDS servers can serve LOOKUPNAME replies to NFS-exporting clients. Check for KASAN 'out-of-bounds write' reports and unexplained client kernel crashes on hosts in the CephFS-NFS re-export path, and treat any MDS compromise as a potential client kernel compromise.

Affected
Linux kernel (CephFS client, fs/ceph/export.c)
Estimated exposure
nichelow thousands of systems at most (only CephFS mounts re-exported over NFS, out of an estimated tens of thousands of Ceph clusters worldwide) — Ceph deployments are typically private data-center/OpenStack storage clusters (public scans show only a few thousand internet-exposed Ceph endpoints), and the vulnerable code path further requires the subset that re-exports CephFS over NFS…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

In the Linux kernel, the following vulnerability has been resolved: ceph: bound copied dentry name length in NFS export get_name ceph_get_name() copies the MDS-supplied name into the caller's NAME_MAX-sized buffer with memcpy(name, rinfo->dname, rinfo->dname_len) and then writes name[rinfo->dname_len] = 0, without checking dname_len against NAME_MAX. A malicious or buggy MDS that returns a LOOKUPNAME reply with dname_len > NAME_MAX overflows the buffer. __get_snap_name() copies rde->name / rde->name_len the same unchecked way. Impact: a malicious or compromised Ceph MDS overflows the NAME_MAX name buffer in a client's NFS-export get_name path, a slab out-of-bounds write reported by KASAN. Reachable when a CephFS mount is re-exported over NFS. Add ceph_export_copy_name(), which rejects lengths above NAME_MAX with -ENAMETOOLONG before the copy, and use it in both ceph_get_name() and __get_snap_name().

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

In the news

No ingested article mentions this CVE yet.