Patch "exec: Limit arg stack to at most 75% of _STK_LIM" has been added to the 4.9-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
exec: Limit arg stack to at most 75% of _STK_LIM
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
exec-limit-arg-stack-to-at-most-75-of-_stk_lim.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
da029c11e6b12f321f36dac8771e833b65cec962Mon Sep 17 00:00:00 2001
From: Kees Cook <[email protected]>
Date: Fri, 7 Jul 2017 11:57:29 -0700
Subject: exec: Limit arg stack to at most 75% of _STK_LIM
From: Kees Cook <[email protected]>
commit da029c11e6b12f321f36dac8771e833b65cec962 upstream.
To avoid pathological stack usage or the need to special-case setuid execs, just limit all arg stack usage to at most 75% of _STK_LIM (6MB).
--- fs/exec.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-)
fs/exec.c +6 -5
@@ -215,8 +215,7 @@ static struct page *get_arg_page(structif (write) {unsigned long size = bprm->vma->vm_end - bprm->vma->vm_start; -unsigned long ptr_size; -struct rlimit *rlim; +unsigned long ptr_size, limit;/* * Since the stack will hold pointers to the strings, we
@@ -245,14 +244,16 @@ static struct page *get_arg_page(structreturn page;/* -* Limit to 1/4-th the stack size for the argv+env strings. +* Limit to 1/4 of the max stack size or 3/4 of _STK_LIM +* (whichever is smaller) for the argv+env strings. * This ensures that: * - the remaining binfmt code will not run out of stack space, * - the program will have a reasonable amount of stack left * to work from. */ - rlim = current->signal->rlim; -if (size >READ_ONCE (rlim[RLIMIT_STACK ].rlim_cur) /4 ) + limit = _STK_LIM /4 *3 ; + limit =min (limit,rlimit (RLIMIT_STACK ) /4 ); +if (size > limit) goto fail; }
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/binfmt_elf-use-elf_et_dyn_base-only-for-pie.patch queue-4.9/exec-limit-arg-stack-to-at-most-75-of-_stk_lim.patch queue-4.9/s390-reduce-elf_et_dyn_base.patch queue-4.9/arm-move-elf_et_dyn_base-to-4mb.patch queue-4.9/arm64-move-elf_et_dyn_base-to-4gb-4mb.patch queue-4.9/selftests-capabilities-fix-the-test_execve-test.patch queue-4.9/powerpc-move-elf_et_dyn_base-to-4gb-4mb.patch