This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
RE: [PATCH] clone3: validate stack arguments
- From: David Laight <David dot Laight at ACULAB dot COM>
- To: 'Christian Brauner' <christian dot brauner at ubuntu dot com>, "linux-kernel at vger dot kernel dot org" <linux-kernel at vger dot kernel dot org>, Florian Weimer <fweimer at redhat dot com>, GNU C Library <libc-alpha at sourceware dot org>
- Cc: Arnd Bergmann <arnd at arndb dot de>, Kees Cook <keescook at chromium dot org>, "Jann Horn" <jannh at google dot com>, David Howells <dhowells at redhat dot com>, Ingo Molnar <mingo at redhat dot com>, Oleg Nesterov <oleg at redhat dot com>, Linus Torvalds <torvalds at linux-foundation dot org>, Peter Zijlstra <peterz at infradead dot org>, "linux-api at vger dot kernel dot org" <linux-api at vger dot kernel dot org>, "stable at vger dot kernel dot org" <stable at vger dot kernel dot org>
- Date: Thu, 31 Oct 2019 14:27:30 +0000
- Subject: RE: [PATCH] clone3: validate stack arguments
- References: <20191031113608.20713-1-christian.brauner@ubuntu.com>
>From Christian Brauner
> Sent: 31 October 2019 11:36
>
> Validate the stack arguments and setup the stack depening on whether or not
> it is growing down or up.
>
...
> -static bool clone3_args_valid(const struct kernel_clone_args *kargs)
> +/**
> + * clone3_stack_valid - check and prepare stack
> + * @kargs: kernel clone args
> + *
> + * Verify that the stack arguments userspace gave us are sane.
> + * In addition, set the stack direction for userspace since it's easy for us to
> + * determine.
> + */
> +static inline bool clone3_stack_valid(struct kernel_clone_args *kargs)
> +{
> + if (kargs->stack == 0) {
> + if (kargs->stack_size > 0)
> + return false;
> + } else {
> + if (kargs->stack_size == 0)
> + return false;
> +
> + if (!access_ok((void __user *)kargs->stack, kargs->stack_size))
> + return false;
Does access_ok() do anything useful here?
It only verifies that the buffer isn't in kernel space.
David
-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)