All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: Paul Moore <paul@paul-moore.com>
Cc: Song Liu <song@kernel.org>,
	corbet@lwn.net, akpm@linux-foundation.org,
	skhan@linuxfoundation.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org,
	gregkh@linuxfoundation.org,
	linux-security-module@vger.kernel.org
Subject: Re: [PATCH] killswitch: add per-function short-circuit mitigation primitive
Date: Tue, 19 May 2026 16:00:55 -0400	[thread overview]
Message-ID: <agzBd9mMt3Zf7j1j@laps> (raw)
In-Reply-To: <CAHC9VhTEs7rCaoPG7cWAzyVkN3ztdadHAq0g8mEy_MgCiCe=0g@mail.gmail.com>

On Mon, May 18, 2026 at 11:08:38PM -0400, Paul Moore wrote:
>On Mon, May 18, 2026 at 8:31 PM Sasha Levin <sashal@kernel.org> wrote:
>> On Mon, May 18, 2026 at 05:29:32PM -0400, Paul Moore wrote:
>> >From my perspective there are two different issues here: should
>> >killswitch be a LSM, and should killswitch leverage kprobes to be able
>> >to "kill" security related symbols.  After all, are we okay with
>> >killswitch killing capable() and friends?
>>
>> killswitch doesn't do it on it's own. It may be instructed by root to do that,
>> at which point that is root's problem.
>
>As I mentioned previously, there are cases where we can restrict
>root's privileges today, but a functional killswitch would allow that
>restriction to be bypassed.  My last email to Song has an example with
>SELinux.

This would be handled by just disabling killswitch in those scenarios like how
we do with lockdown, no?

>> >In my opinion, making killswitch an LSM is more of a procedural item
>> >that deals with how we view a capability like killswitch.  I
>> >personally view killswitch as somewhat similar to Lockdown, which is
>> >why I made the suggestion.
>>
>> Maybe I'm not all that familiar with LSMs, but we would need to be able to stop
>> "random" code paths from executing, and I don't think we can create LSM hooks
>> at that granularity, no?
>
>I don't see any LSM hooks in this revision of killswitch, and as long
>as it is based on a kprobes I can't imagine it would ever use any.  As
>I mentioned above, my killswitch-as-a-LSM comment is primarily about
>killswitch filling a role very similar to Lockdown.

My question was more about how to structure killswitch as an LSM. I want to be
able to poke at pretty much any function in the kernel, rather than restrict
access to a known list of functions.

>> >The use of kprobes, while an interesting idea, presents problems as
>> >allowing any kernel symbol to be killed introduces the potential for
>> >security regressions.  As a reminder, some LSMs, as well as other
>> >kernel subsystems, have mechanisms in place to restrict root and/or
>> >enforce one-way configuration locks; while many people equate "root"
>> >with full control, in many cases today that is not strictly correct.
>>
>> killswitch "complies" with lockdown. Is there a different scenario which we
>> should be blocking?
>
>See the SELinux example I mentioned in my email to Song.
>
>> >Yes, kprobes have been around for some time, this is not a new
>> >problem, but killswitch makes it far more convenient and accessible to
>> >do dangerous things with kprobes.  If killswitch makes it past the RFC
>> >stage without any significant changes to its kill mechanism, we may
>> >need to start considering more liberal usage of NOKPROBE_SYMBOL()
>> >which I think would be an unfortunate casualty.
>>
>> Why? If I don't really mind the security impact, I want to be able to have a
>> killswitch-like interface on my systems. If an attacker is in my systems,
>> killswitch is the least of my concerns I think.
>>
>> If you are security concious, just don't enable CONFIG_KILLSWITCH?
>
>Isn't the whole point of killswitch to have it enabled everywhere
>because you never know when you might want/need it?

Right. We have different usecases. If you want selinux/lockdown/etc and a
really crippled root, that should be an option. If you choose to allow
something like killswitch, it should be an option too.

-- 
Thanks,
Sasha

  reply	other threads:[~2026-05-19 20:00 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-07  7:05 [PATCH] killswitch: add per-function short-circuit mitigation primitive Sasha Levin
2026-05-07 10:47 ` Greg KH
2026-05-07 13:40   ` Sasha Levin
2026-05-07 16:23     ` Greg KH
2026-05-07 15:21 ` Jonathan Corbet
2026-05-08 13:44   ` Sasha Levin
2026-05-08 15:40 ` Joshua Peisach
2026-05-08 15:48   ` Mathieu Desnoyers
2026-05-08 16:13     ` Sasha Levin
2026-05-08 16:18       ` Mathieu Desnoyers
2026-05-08 16:23         ` Sasha Levin
2026-05-08 16:26           ` Mathieu Desnoyers
2026-05-08 16:54             ` Sasha Levin
2026-05-08 20:56 ` Andrew Morton
2026-05-08 21:47   ` Sasha Levin
2026-05-08 23:49     ` Andrew Morton
2026-05-09  0:15       ` Sasha Levin
2026-05-09  0:36         ` Andrew Morton
2026-05-11 11:41     ` Breno Leitao
2026-05-11 13:07       ` Michal Hocko
2026-05-11 13:39         ` Sasha Levin
2026-05-11 13:49           ` Michal Hocko
2026-05-11 13:56             ` Sasha Levin
2026-05-11 14:25               ` Michal Hocko
2026-05-11 15:55                 ` Sasha Levin
2026-05-11 16:10                   ` Michal Hocko
2026-05-11 16:45                     ` Sasha Levin
2026-05-11 17:10                       ` Michal Hocko
2026-05-11 18:09                         ` Sasha Levin
2026-05-14 14:35                           ` Jiri Olsa
2026-05-11 13:40         ` Breno Leitao
2026-05-11 22:31         ` Andrew Morton
2026-05-11 23:01           ` Song Liu
2026-05-11 23:05           ` Sasha Levin
2026-05-15  3:48 ` Paul Moore
2026-05-18  6:31   ` Song Liu
2026-05-18 21:29     ` Paul Moore
2026-05-18 23:22       ` Song Liu
2026-05-18 23:57         ` Paul Moore
2026-05-19  0:01           ` Song Liu
2026-05-19  2:55             ` Paul Moore
2026-05-19  0:21           ` Sasha Levin
2026-05-19  0:31       ` Sasha Levin
2026-05-19  3:08         ` Paul Moore
2026-05-19 20:00           ` Sasha Levin [this message]
2026-05-19 20:50             ` Paul Moore
2026-05-19  5:29         ` Song Liu
2026-05-19 20:33           ` Paul Moore

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=agzBd9mMt3Zf7j1j@laps \
    --to=sashal@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=corbet@lwn.net \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=linux-security-module@vger.kernel.org \
    --cc=paul@paul-moore.com \
    --cc=skhan@linuxfoundation.org \
    --cc=song@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 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.