Thread (35 messages) 35 messages, 10 authors, 2018-02-07

Re: [PATCH v4 07/10] x86: narrow out of bounds syscalls to sys_read under speculation

From: Luis Henriques <hidden>
Date: 2018-02-06 22:51:32
Also in: lkml

On Tue, Feb 06, 2018 at 11:48:45AM -0800, Dan Williams wrote:
On Tue, Feb 6, 2018 at 11:29 AM, Luis Henriques [off-list ref] wrote:
quoted
On Thu, Jan 18, 2018 at 04:02:21PM -0800, Dan Williams wrote:
quoted
The syscall table base is a user controlled function pointer in kernel
space. Like, 'get_user, use 'MASK_NOSPEC' to prevent any out of bounds
speculation. While retpoline prevents speculating into the user
controlled target it does not stop the pointer de-reference, the concern
is leaking memory relative to the syscall table base.
This patch seems to cause a regression.  An easy way to reproduce what
I'm seeing is to run the samples/statx/test-statx.  Here's what I see
when I have this patchset applied:

# ./test-statx /tmp
statx(/tmp) = -1
/tmp: Bad file descriptor

Reverting this single patch seems to fix it.
Just to clarify, when you say "this patch" you mean:

     2fbd7af5af86 x86/syscall: Sanitize syscall table de-references
under speculation

...not this early MASK_NOSPEC version of the patch, right?
*sigh*

Looks like I spent some good amount of time hunting a non-issue just
because I have enough old branches hanging around to confusing me :-(

Sorry for the noise.

Cheers,
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help