Thread (89 messages) 89 messages, 18 authors, 2017-05-13

[kernel-hardening] Re: [PATCH v9 1/4] syscalls: Verify address limit before returning to user-mode

From: Daniel Micay <hidden>
Date: 2017-05-12 21:16:51
Also in: linux-api, linux-s390, lkml

On Fri, 2017-05-12 at 22:06 +0100, Al Viro wrote:
On Fri, May 12, 2017 at 09:21:06PM +0100, Russell King - ARM Linux
wrote:
quoted
On Fri, May 12, 2017 at 12:30:02PM -0700, Kees Cook wrote:
quoted
I'm clearly not explaining things well enough. I shouldn't say
"corruption", I should say "malicious manipulation". The
methodology
of attacks against the stack are quite different from the other
kinds
of attacks like use-after-free, heap overflow, etc. Being able to
exhaust the kernel stack (either due to deep recursion or
unbounded
alloca())
I really hope we don't have alloca() use in the kernel.  Do you have
evidence to support that assertion?

IMHO alloca() (or similar) should not be present in any kernel code
because we have a limited stack - we have kmalloc() etc for that
kind
of thing.
No alloca(), but there are VLAs.  Said that, the whole "what if they
can bugger thread_info and/or task_struct and go after set_fs() state"
is idiocy, of course - in that case the box is fucked, no matter what.
VMAP_STACK + -fstack-check would prevent exploiting even an unbounded
VLA / alloca size vs. it being an arbitrary write. -fstack-check
guarantees that there's one byte per page as the stack grows, although
there are some unfortunate GCC bugs making it less than perfect right
now... but they recently started caring about it more including making
it near zero overhead as it was always supposed to be.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help