From: Michael Bommarito <michael.bommarito@gmail.com>
To: Ilya Dryomov <idryomov@gmail.com>,
Alex Markuze <amarkuze@redhat.com>,
Viacheslav Dubeyko <slava@dubeyko.com>
Cc: ceph-devel@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH v2 0/4] ceph: bound untrusted MDS and monitor reply decoders
Date: Sat, 6 Jun 2026 15:00:21 -0400 [thread overview]
Message-ID: <cover.1780766417.git.michael.bommarito@gmail.com> (raw)
In-Reply-To: <cover.1780596023.git.michael.bommarito@gmail.com>
This is v2 of the CephFS decoder-bound series. The first two patches are
unchanged code-wise and now carry Slava's Reviewed-by. Patches 3 and 4
address the review feedback on overflow-safe sizing and aggregate delegated
inode bounds.
The four bugs are still independent:
1/4 rejects a final xattr value length that runs past the xattr blob.
2/4 bounds MDSCapAuth path and fs_name copies in handle_session().
3/4 bounds the mdsmap export_targets array for info_v 2/3.
4/4 bounds delegated-inode parsing by session population and by one
reply's aggregate interval length.
Changes in v2:
- Add Reviewed-by: Viacheslav Dubeyko to patches 1 and 2.
- Patch 3 computes the export-targets byte count with size_mul() and
reuses the checked length for the cursor advance.
- Patch 4 replaces the per-interval cap with a per-session population
counter and a per-reply interval budget, so repeated replies and
duplicate ranges are bounded too. The cap stays a fixed client-side
constant because the kernel client never sees the userspace
mds_client_prealloc_inos option; it is sized as a generous multiple of
that option's documented default of 1000.
Michael Bommarito (4):
ceph: bound xattr value length in __build_xattrs()
ceph: bound MDSCapAuth path and fs_name decode in handle_session()
ceph: bound num_export_targets array for mds info v2/v3
ceph: cap delegated inode count in ceph_parse_deleg_inos()
fs/ceph/mds_client.c | 59 ++++++++++++++++++++++++++++++++++++++------
fs/ceph/mds_client.h | 1 +
fs/ceph/mdsmap.c | 7 +++++-
fs/ceph/super.h | 9 +++++++
fs/ceph/xattr.c | 1 +
5 files changed, 68 insertions(+), 9 deletions(-)
base-commit: f72c95f3a516d87483e225ae081a402a09fd0127
--
2.53.0
next prev parent reply other threads:[~2026-06-06 19:00 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-04 18:08 [PATCH 0/4] ceph: bound untrusted MDS and monitor reply decoders Michael Bommarito
2026-06-04 18:08 ` [PATCH 1/4] ceph: bound xattr value length in __build_xattrs() Michael Bommarito
2026-06-04 19:50 ` Viacheslav Dubeyko
2026-06-04 18:08 ` [PATCH 2/4] ceph: bound MDSCapAuth path and fs_name decode in handle_session() Michael Bommarito
2026-06-04 19:54 ` Viacheslav Dubeyko
2026-06-04 18:08 ` [PATCH 3/4] ceph: bound num_export_targets array for mds info v2/v3 Michael Bommarito
2026-06-04 20:04 ` Viacheslav Dubeyko
2026-06-04 20:23 ` Michael Bommarito
2026-06-04 18:09 ` [PATCH 4/4] ceph: cap delegated inode count in ceph_parse_deleg_inos() Michael Bommarito
2026-06-04 21:06 ` Viacheslav Dubeyko
2026-06-04 21:41 ` Michael Bommarito
2026-06-05 19:10 ` Viacheslav Dubeyko
2026-06-06 19:00 ` Michael Bommarito [this message]
2026-06-06 19:00 ` [PATCH v2 1/4] ceph: bound xattr value length in __build_xattrs() Michael Bommarito
2026-06-06 19:00 ` [PATCH v2 2/4] ceph: bound MDSCapAuth path and fs_name decode in handle_session() Michael Bommarito
2026-06-06 19:00 ` [PATCH v2 3/4] ceph: bound num_export_targets array for mds info v2/v3 Michael Bommarito
2026-06-06 19:00 ` [PATCH v2 4/4] ceph: cap delegated inode count in ceph_parse_deleg_inos() Michael Bommarito
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=cover.1780766417.git.michael.bommarito@gmail.com \
--to=michael.bommarito@gmail.com \
--cc=amarkuze@redhat.com \
--cc=ceph-devel@vger.kernel.org \
--cc=idryomov@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=slava@dubeyko.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.