[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <385d72eb-2443-42e5-858d-0cc083a29a26@gmx.de>
Date: Thu, 8 Feb 2024 08:02:24 +0100
From: Helge Deller <deller@....de>
To: Zev Weiss <zev@...ilderbeest.net>, linux-parisc@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org, Florent Revest <revest@...omium.org>
Cc: "James E.J. Bottomley" <James.Bottomley@...senPartnership.com>,
"Mike Rapoport (IBM)" <rppt@...nel.org>,
Rick Edgecombe <rick.p.edgecombe@...el.com>,
"Borislav Petkov (AMD)" <bp@...en8.de>,
Andrew Morton <akpm@...ux-foundation.org>,
Yang Shi <yang@...amperecomputing.com>, Stefan Roesch <shr@...kernel.io>,
Oleg Nesterov <oleg@...hat.com>, David Hildenbrand <david@...hat.com>,
Josh Triplett <josh@...htriplett.org>, Ondrej Mosnacek
<omosnace@...hat.com>, Miguel Ojeda <ojeda@...nel.org>,
openbmc@...ts.ozlabs.org, linux-kernel@...r.kernel.org,
Russell King <linux@...linux.org.uk>, Sam James <sam@...too.org>,
stable@...r.kernel.org
Subject: Re: [PATCH 0/2] ARM: prctl: Reject PR_SET_MDWE where not supported
Hi Zev,
On 2/8/24 02:26, Zev Weiss wrote:
> Hello,
>
> I noticed after a recent kernel update that my ARM926 system started
> segfaulting on any execve() after calling prctl(PR_SET_MDWE). After
> some investigation it appears that ARMv5 is incapable of providing the
> appropriate protections for MDWE, since any readable memory is also
> implicitly executable.
>
> (Note that I'm not an expert in either ARM arch details or the mm
> subsystem, so please bear with me if I've botched something in the
> above analysis.)
>
> The prctl_set_mdwe() function already had some special-case logic
> added disabling it on PARISC (commit 793838138c15, "prctl: Disable
> prctl(PR_SET_MDWE) on parisc"); this patch series (1) generalizes that
> check to use an arch_*() function, and (2) adds a corresponding
> override for ARM to disable MDWE on pre-ARMv6 CPUs.
Instead of splitting it out to a new function in mman.h,
I'd prefer having it as config option, e.g. ARCH_HAS_NO_MDWE_SUPPORT (?)
which could be checked instead.
For parisc we still want to allow mdwe in the future, we just have
to wait until most user-space programs have updated to the latest
binaries which don't need an executable stack any longer.
> With the series applied, prctl(PR_SET_MDWE) is rejected on ARMv5 and
> subsequent execve() calls (as well as mmap(PROT_READ|PROT_WRITE)) can
> succeed instead of unconditionally failing; on ARMv6 the prctl works
> as it did previously.
>
> Since this was effectively a userspace-breaking change in v6.3 (with
> newer MDWE-aware userspace on older pre-MDWE kernels the prctl would
> simply fail safely) I've CCed -stable for v6.3+, though since the
> patches depend on the PARISC one above it will only apply cleanly on
> the linux-6.6.y and linux-6.7.y branches, since at least at time of
> writing the 6.3 through 6.5 branches don't have that patch backported
> (due to further missing dependencies [0]).
> [0] https://lore.kernel.org/all/2023112456-linked-nape-bf19@gregkh/
I think you don't need to worry about that, since stable kernel series
for 6.3 up to 6.5 were stopped...
> Zev Weiss (2):
> prctl: Generalize PR_SET_MDWE support check to be per-arch
> ARM: prctl: Reject PR_SET_MDWE on pre-ARMv6
>
> arch/arm/include/asm/mman.h | 14 ++++++++++++++
> arch/parisc/include/asm/mman.h | 14 ++++++++++++++
> include/linux/mman.h | 8 ++++++++
> kernel/sys.c | 7 +++++--
> 4 files changed, 41 insertions(+), 2 deletions(-)
> create mode 100644 arch/arm/include/asm/mman.h
> create mode 100644 arch/parisc/include/asm/mman.h
>
Powered by blists - more mailing lists