linux_dsm_epyc7002/arch/arm/mm
Kees Cook 8f2af155b5 exec: pass stack rlimit into mm layout functions
Patch series "exec: Pin stack limit during exec".

Attempts to solve problems with the stack limit changing during exec
continue to be frustrated[1][2].  In addition to the specific issues
around the Stack Clash family of flaws, Andy Lutomirski pointed out[3]
other places during exec where the stack limit is used and is assumed to
be unchanging.  Given the many places it gets used and the fact that it
can be manipulated/raced via setrlimit() and prlimit(), I think the only
way to handle this is to move away from the "current" view of the stack
limit and instead attach it to the bprm, and plumb this down into the
functions that need to know the stack limits.  This series implements
the approach.

[1] 04e35f4495 ("exec: avoid RLIMIT_STACK races with prlimit()")
[2] 779f4e1c6c ("Revert "exec: avoid RLIMIT_STACK races with prlimit()"")
[3] to security@kernel.org, "Subject: existing rlimit races?"

This patch (of 3):

Since it is possible that the stack rlimit can change externally during
exec (either via another thread calling setrlimit() or another process
calling prlimit()), provide a way to pass the rlimit down into the
per-architecture mm layout functions so that the rlimit can stay in the
bprm structure instead of sitting in the signal structure until exec is
finalized.

Link: http://lkml.kernel.org/r/1518638796-20819-2-git-send-email-keescook@chromium.org
Signed-off-by: Kees Cook <keescook@chromium.org>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Ben Hutchings <ben@decadent.org.uk>
Cc: Willy Tarreau <w@1wt.eu>
Cc: Hugh Dickins <hughd@google.com>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: "Jason A. Donenfeld" <Jason@zx2c4.com>
Cc: Rik van Riel <riel@redhat.com>
Cc: Laura Abbott <labbott@redhat.com>
Cc: Greg KH <greg@kroah.com>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Ben Hutchings <ben.hutchings@codethink.co.uk>
Cc: Brad Spengler <spender@grsecurity.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-04-11 10:28:37 -07:00
..
abort-ev4.S
abort-ev4t.S
abort-ev5t.S
abort-ev5tj.S
abort-ev6.S
abort-ev7.S
abort-lv4t.S
abort-macro.S
abort-nommu.S
alignment.c
cache-aurora-l2.h
cache-b15-rac.c ARM: 8741/1: B15: fix unused label warnings 2018-01-21 15:32:25 +00:00
cache-fa.S
cache-feroceon-l2.c
cache-l2x0-pmu.c perf: Fix sibling iteration 2018-03-16 20:44:12 +01:00
cache-l2x0.c
cache-nop.S
cache-tauros2.c
cache-tauros3.h
cache-uniphier.c
cache-v4.S
cache-v4wb.S
cache-v4wt.S
cache-v6.S
cache-v7.S ARM: 8729/1: Hook B15 readahead cache functions based on processor 2017-12-17 22:15:36 +00:00
cache-v7m.S
cache-xsc3l2.c
context.c
copypage-fa.c
copypage-feroceon.c
copypage-v4mc.c mm: fix races between swapoff and flush dcache 2018-04-05 21:36:26 -07:00
copypage-v4wb.c
copypage-v4wt.c
copypage-v6.c mm: fix races between swapoff and flush dcache 2018-04-05 21:36:26 -07:00
copypage-xsc3.c
copypage-xscale.c mm: fix races between swapoff and flush dcache 2018-04-05 21:36:26 -07:00
dma-mapping-nommu.c dma-direct: make dma_direct_{alloc,free} available to other implementations 2018-01-15 09:35:14 +01:00
dma-mapping.c ARM: CMA: avoid double mapping to the CMA area if CONFIG_HIGHMEM=y 2018-04-11 10:28:32 -07:00
dma.h
dump.c ARM: 8737/1: mm: dump: add checking for writable and executable 2018-01-21 15:32:20 +00:00
extable.c
fault-armv.c mm: fix races between swapoff and flush dcache 2018-04-05 21:36:26 -07:00
fault.c ARM: probes: avoid adding kprobes to sensitive kernel-entry/exit code 2017-12-17 22:14:21 +00:00
fault.h
flush.c mm: fix races between swapoff and flush dcache 2018-04-05 21:36:26 -07:00
fsr-2level.c
fsr-3level.c
highmem.c
hugetlbpage.c
idmap.c ARM: 8734/1: mm: idmap: Mark variables as ro_after_init 2017-12-17 22:16:20 +00:00
init.c ARM: simplify and fix linker script for TCM 2018-03-09 20:20:43 -05:00
iomap.c
ioremap.c
Kconfig ARM: 8725/1: Add Broadcom Brahma-B15 readahead cache support 2017-12-17 22:15:35 +00:00
l2c-common.c
l2c-l2x0-resume.S
Makefile ARM: 8735/1: mm: dump: make page table dumping reusable 2018-01-21 15:32:17 +00:00
mm.h
mmap.c exec: pass stack rlimit into mm layout functions 2018-04-11 10:28:37 -07:00
mmu.c
nommu.c ARM: 8739/1: NOMMU: Setup VBAR/Hivecs for secondaries cores 2018-01-21 15:32:23 +00:00
pabort-legacy.S
pabort-v6.S
pabort-v7.S
pageattr.c
pgd.c
physaddr.c
pmsa-v7.c ARM: 8740/1: NOMMU: Make sure we do not hold stale data in mem[] array 2018-01-21 15:32:24 +00:00
proc-arm7tdmi.S
proc-arm9tdmi.S
proc-arm720.S
proc-arm740.S
proc-arm920.S
proc-arm922.S
proc-arm925.S
proc-arm926.S
proc-arm940.S
proc-arm946.S
proc-arm1020.S
proc-arm1020e.S
proc-arm1022.S
proc-arm1026.S
proc-fa526.S
proc-feroceon.S
proc-macros.S
proc-mohawk.S
proc-sa110.S
proc-sa1100.S
proc-syms.c
proc-v6.S
proc-v7-2level.S
proc-v7-3level.S
proc-v7.S ARM: 8751/1: Add support for Cortex-R8 processor 2018-03-28 21:30:59 +01:00
proc-v7m.S
proc-xsc3.S
proc-xscale.S
ptdump_debugfs.c ARM: 8735/1: mm: dump: make page table dumping reusable 2018-01-21 15:32:17 +00:00
pv-fixup-asm.S
tcm.h
tlb-fa.S
tlb-v4.S
tlb-v4wb.S
tlb-v4wbi.S
tlb-v6.S
tlb-v7.S