From: Kees Cook <kees@kernel.org>
To: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
Cc: syzbot+4eb7a741b3216020043a@syzkaller.appspotmail.com,
jmorris@namei.org, linux-kernel@vger.kernel.org,
linux-security-module@vger.kernel.org, serge@hallyn.com,
syzkaller-bugs@googlegroups.com, Paul Moore <paul@paul-moore.com>,
Leo Stone <leocstone@gmail.com>,
mortonm@chromium.org
Subject: Re: [PATCH v2] lsm: check size of writes
Date: Sun, 22 Dec 2024 21:32:58 -0800 [thread overview]
Message-ID: <202412222126.E70910E7A8@keescook> (raw)
In-Reply-To: <9fcd3f3d-33c1-4feb-8c98-472d44bc0a54@I-love.SAKURA.ne.jp>
On Sat, Dec 21, 2024 at 10:40:45PM +0900, Tetsuo Handa wrote:
> Hello, Kees.
>
> On 2024/12/21 19:00, Tetsuo Handa wrote:
> > FYI: I sent
> >
> > https://lkml.kernel.org/r/014cd694-cc27-4a07-a34a-2ae95d744515@I-love.SAKURA.ne.jp
> >
> > which makes this patch redundant if my patch is accepted.
> >
>
> I got a question regarding commit d73778e4b867 ("mm/util: Use dedicated
> slab buckets for memdup_user()").
>
> While I consider that using the same slab buckets for memdup_user() and
> memdup_user_nul() is OK, I came to feel that we could utilize
> kmem_buckets_create() more aggressively for debug purpose and/or
> isolation purpose.
Sure!
>
> I got three bug reports on TOMOYO
> https://lkml.kernel.org/r/67646895.050a0220.1dcc64.0023.GAE@google.com
> and I guess that at least the fix for the first bug is
> https://lkml.kernel.org/r/20241218185000.17920-2-leocstone@gmail.com
> because the syz reproducer includes access to
> /sys/kernel/config/nvmet/discovery_nqn interface.
>
> If the slab buckets for nvmet and TOMOYO were separated, we might have
> received these bug reports as nvmet bugs rather than TOMOYO bugs.
>
> We switched to use module-local workqueue if that module needs to call
> flush_workqueue() because calling flush_workqueue() against the kernel global
> workqueues might introduce unpredictable locking dependency. Therefore, I came
> to feel that it might be helpful to add a kernel config option for switching
> whether to use dedicated slab buckets for individual module/subsystems.
>
> For example, I don't know whether it is worth using a dedicated slab bucket
> for each LSM module, but I feel that having a dedicated slab bucket shared
> between all LSM modules might be worth doing, in order to reduce possibility
> of by error overrunning into chunks used by LSM modules caused by bugs in
> unrelated code.
If the LSM core did a kmem_buckets_create() for each LSM, and the LSMs
were adjusted to explicitly allocate from their own bucket set, that
would be one way. Or just for the LSM as a whole (1 set of buckets
instead of a set for each LSM). I'd be happy to review patches for
either idea.
> Maybe we want a flag for not to bloat /proc/slabinfo output if we allow
> using dedicated slab buckets for individual module/subsystems...
No, I think accuracy for slabinfo is more important.
> What do you think?
I think per-site buckets is going to be the most effective long-term:
https://lore.kernel.org/lkml/20240809072532.work.266-kees@kernel.org/
But that doesn't exclude new kmem_buckets_create() users.
-Kees
--
Kees Cook
next prev parent reply other threads:[~2024-12-23 5:33 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-15 21:59 [syzbot] [lsm?] WARNING in handle_policy_update syzbot
2024-12-16 3:02 ` [PATCH] lsm: check size of writes Leo Stone
2024-12-16 9:58 ` Tetsuo Handa
2024-12-16 22:59 ` Paul Moore
2024-12-17 18:26 ` [PATCH v2] " Leo Stone
2024-12-18 21:51 ` Paul Moore
2024-12-21 10:00 ` Tetsuo Handa
2024-12-21 13:40 ` Tetsuo Handa
2024-12-23 5:32 ` Kees Cook [this message]
2025-01-05 4:04 ` Paul Moore
2025-01-07 0:09 ` Kees Cook
2025-01-08 21:17 ` Paul Moore
2025-01-05 3:51 ` Paul Moore
2025-01-05 3:49 ` Paul Moore
2025-01-24 19:24 ` Micah Morton
2025-01-24 19:42 ` Paul Moore
2025-01-27 16:05 ` Micah Morton
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=202412222126.E70910E7A8@keescook \
--to=kees@kernel.org \
--cc=jmorris@namei.org \
--cc=leocstone@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-security-module@vger.kernel.org \
--cc=mortonm@chromium.org \
--cc=paul@paul-moore.com \
--cc=penguin-kernel@i-love.sakura.ne.jp \
--cc=serge@hallyn.com \
--cc=syzbot+4eb7a741b3216020043a@syzkaller.appspotmail.com \
--cc=syzkaller-bugs@googlegroups.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.