Linux kernel CVE announcements
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-cve-announce@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@kernel.org>
Subject: CVE-2026-89651: ceph: bound MDSCapAuth path and fs_name decode in handle_session()
Date: Fri, 11 Sep 2026 21:45:40 +0200	[thread overview]
Message-ID: <2026091144-CVE-2026-89651-7bbb@gregkh> (raw)

From: Greg Kroah-Hartman <gregkh@kernel.org>

Description
===========

In the Linux kernel, the following vulnerability has been resolved:

ceph: bound MDSCapAuth path and fs_name decode in handle_session()

handle_session() decodes the MDSCapAuth records carried by a
CEPH_SESSION_OPEN message (msg_version >= 6). For each record the
match.path and match.fs_name byte strings are read by first decoding a
32-bit length and then copying that many bytes with the bare
ceph_decode_copy(). Unlike the surrounding fields, which all use the
_safe decode variants, these two copies are not preceded by a
ceph_decode_need() bounds check, and the enclosing MDSCapAuth and
MDSCapMatch struct_len fields are skipped rather than enforced as an
upper bound. A length larger than the bytes remaining in the message
front makes ceph_decode_copy() read past the end of the front buffer.

The message front is a dedicated allocation (ceph_msg_new2() ->
kvmalloc), so the over-read runs off that object. A malicious or
compromised MDS can trigger this with the first post-connect message on
mount, with no client-side user interaction; under KASAN it is reported
as a slab-out-of-bounds read in handle_session().

Impact: a malicious MDS can force the kernel client to read up to 4 GiB
past the message front allocation during session setup, crashing the
client (out-of-bounds read).

Switch both copies to ceph_decode_copy_safe(), which performs the
ceph_decode_need() bounds check before the copy and branches to the
existing bad label, matching the rest of the decoder and the error path
that frees the partially decoded cap_auths array.

The Linux kernel CVE team has assigned CVE-2026-89651 to this issue.


Affected and fixed versions
===========================

	Issue introduced in 6.10 with commit 1d17de9534cb5a4c4c380d174cc2f9281b34f89e and fixed in 6.12.109 with commit dc5c7dffda92ef372fa587c444a1c537373df824
	Issue introduced in 6.10 with commit 1d17de9534cb5a4c4c380d174cc2f9281b34f89e and fixed in 6.18.50 with commit c37db86d2b5e9b57001ccae7e7a727e95a4f9c02
	Issue introduced in 6.10 with commit 1d17de9534cb5a4c4c380d174cc2f9281b34f89e and fixed in 7.2.4 with commit 5f892c767b30e4fb0c744c59f9235c717383d2cd
	Issue introduced in 6.10 with commit 1d17de9534cb5a4c4c380d174cc2f9281b34f89e and fixed in 7.3-rc1 with commit 77933e22adfe813be2bd10be08d6e950103c3967

Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.

Unaffected versions might change over time as fixes are backported to
older supported kernel versions.  The official CVE entry at
	https://cve.org/CVERecord/?id=CVE-2026-89651
will be updated if fixes are backported, please check that for the most
up to date information about this issue.


Affected files
==============

The file(s) affected by this issue are:
	fs/ceph/mds_client.c


Mitigation
==========

The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes.  Individual
changes are never tested alone, but rather are part of a larger kernel
release.  Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all.  If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
	https://git.kernel.org/stable/c/dc5c7dffda92ef372fa587c444a1c537373df824
	https://git.kernel.org/stable/c/c37db86d2b5e9b57001ccae7e7a727e95a4f9c02
	https://git.kernel.org/stable/c/5f892c767b30e4fb0c744c59f9235c717383d2cd
	https://git.kernel.org/stable/c/77933e22adfe813be2bd10be08d6e950103c3967

                 reply	other threads:[~2026-09-11 20:00 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2026091144-CVE-2026-89651-7bbb@gregkh \
    --to=gregkh@linuxfoundation.org \
    --cc=cve@kernel.org \
    --cc=gregkh@kernel.org \
    --cc=linux-cve-announce@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox