From: Chris Down <chris@chrisdown.name>
To: Omar Sandoval <osandov@osandov.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Jonathan Corbet <corbet@lwn.net>,
Shuah Khan <skhan@linuxfoundation.org>,
Randy Dunlap <rdunlap@infradead.org>,
linux-debuggers@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
kernel-team@meta.com
Subject: Re: [PATCH] proc/kcore: Allow disabling /proc/kcore at boot
Date: Fri, 30 Oct 2026 01:38:13 +0800 [thread overview]
Message-ID: <auOEhTNaKzu8dgEy@chrisdown.name> (raw)
In-Reply-To: <auKKisespDm1xLLg@os-N5J97HY9XQ>
Hi Omar,
Thanks for taking a look!
Omar Sandoval writes:
>The code looks correct, but is there a reason that /proc/kcore
>(CAP_SYS_RAWIO) is any more concerning than other ways to read kernel
>memory (e.g., CAP_BPF + CAP_PERFMON)?
Not in terms of what it can read, indeed. I would say the distinction is more
about who needs each capability and what we can remove.
Abstractly speaking CAP_SYS_RAWIO may be needed for hardware access without
necessarily wanting to grant general RAM access. STRICT_DEVMEM already makes
that possible for /dev/mem, but /proc/kcore gives the same capability to do
general purpose RAM reading anyway.
In our case in particular, a process with CAP_SYS_RAWIO doesn't necessarily
have CAP_BPF and CAP_PERFMON, so keeping BPF available doesn't make removing
kcore redundant. On the hosts in question, BPF tracing and BPF LSM are part of
the monitoring and sandboxing we rely on, so we can't remove it from the kernel
entirely, but we nevertheless keep CAP_BPF and CAP_PERFMON away from guest
facing processes. Nothing on those host uses /proc/kcore, so we remove it as
one more gap to close.
For that reason those hosts already run with CONFIG_PROC_KCORE=n, while other
hosts keep kcore to aid debugging, since they have a different threat model.
This patch, then, lets us preserve those choices while using the same kernel
image.
In retrospect I should have explained that better in the commit message :-) I
can update it for v2. Does that make more sense? Let me know if I can clarify
further.
Thanks!
prev parent reply other threads:[~2026-10-29 17:38 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-27 4:21 [PATCH] proc/kcore: Allow disabling /proc/kcore at boot Chris Down
2026-10-28 23:51 ` Omar Sandoval
2026-10-29 17:38 ` Chris Down [this message]
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=auOEhTNaKzu8dgEy@chrisdown.name \
--to=chris@chrisdown.name \
--cc=akpm@linux-foundation.org \
--cc=corbet@lwn.net \
--cc=kernel-team@meta.com \
--cc=linux-debuggers@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=osandov@osandov.com \
--cc=rdunlap@infradead.org \
--cc=skhan@linuxfoundation.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