lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <CACT4Y+ZX_HxZQbbmeDnbZgvVqY-p-k+UO8XP7oAMmZMnxufXcg@mail.gmail.com>
Date: Mon, 24 Feb 2025 14:28:13 +0100
From: Dmitry Vyukov <dvyukov@...gle.com>
To: mathieu.desnoyers@...icios.com, peterz@...radead.org, boqun.feng@...il.com, 
	tglx@...utronix.de, mingo@...hat.com, bp@...en8.de, 
	dave.hansen@...ux.intel.com, hpa@...or.com, aruna.ramakrishna@...cle.com, 
	elver@...gle.com, LKML <linux-kernel@...r.kernel.org>, 
	"the arch/x86 maintainers" <x86@...nel.org>
Subject: Re: [PATCH v4 0/4] rseq: Make rseq work with protection keys

On Mon, 24 Feb 2025 at 14:21, Dmitry Vyukov <dvyukov@...gle.com> wrote:
>
> If an application registers rseq, and ever switches to another pkey
> protection (such that the rseq becomes inaccessible), then any
> context switch will cause failure in __rseq_handle_notify_resume()
> attempting to read/write struct rseq and/or rseq_cs. Since context
> switches are asynchronous and are outside of the application control
> (not part of the restricted code scope), temporarily enable access
> to 0 (default) PKEY to read/write rseq/rseq_cs.
> 0 is the only PKEY supported for rseq for now.
> Theoretically other PKEYs can be supported, but it's unclear
> how/if that can work. So for now we don't support that to simplify
> code.
>
> Dmitry Vyukov (4):
>   pkeys: add API to switch to permissive/zero pkey register
>   x86/signal: Use write_permissive_pkey_val() helper
>   rseq: Make rseq work with protection keys
>   selftests/rseq: Add test for rseq+pkeys
>
>  arch/x86/Kconfig                         |  1 +
>  arch/x86/include/asm/pkeys.h             | 33 ++++++++
>  arch/x86/include/asm/pkru.h              | 10 ++-
>  arch/x86/kernel/signal.c                 |  6 +-
>  include/linux/pkeys.h                    | 31 ++++++++
>  kernel/rseq.c                            | 11 +++
>  mm/Kconfig                               |  2 +
>  tools/testing/selftests/rseq/Makefile    |  2 +-
>  tools/testing/selftests/rseq/pkey_test.c | 99 ++++++++++++++++++++++++
>  tools/testing/selftests/rseq/rseq.h      |  1 +
>  10 files changed, 188 insertions(+), 8 deletions(-)
>  create mode 100644 tools/testing/selftests/rseq/pkey_test.c
>
>
> base-commit: d082ecbc71e9e0bf49883ee4afd435a77a5101b6
> --
> 2.48.1.601.g30ceb7b040-goog

+LKML/x86 lists for archiving purposes

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ