Thread (71 messages) 71 messages, 11 authors, 2020-07-24

Re: [PATCH v10 01/26] Documentation/x86: Add CET description

From: Dave Hansen <hidden>
Date: 2020-05-19 00:38:21
Also in: linux-api, linux-arch, linux-mm, lkml

On 5/18/20 4:47 PM, Yu-cheng Yu wrote:
On Fri, 2020-05-15 at 19:53 -0700, Yu-cheng Yu wrote:
quoted
On Fri, 2020-05-15 at 16:56 -0700, Dave Hansen wrote:
quoted
On 5/15/20 4:29 PM, Yu-cheng Yu wrote:
quoted
[...]
I have run them with CET enabled.  All of them pass, except for the following:
Sigreturn from 64-bit to 32-bit fails, because shadow stack is at a 64-bit
address.  This is understandable.
[...]
One a separate topic: You ran the selftests and one failed.  This is a
*MASSIVE* warning sign.  It should minimally be described in your cover
letter, and accompanied by a fix to the test case.  It is absolutely
unacceptable to introduce a kernel feature that causes a test to fail.
You must either fix your kernel feature or you fix the test.

This code can not be accepted until this selftests issue is rectified.
The x86/sigreturn test constructs 32-bit ldt entries, and does sigreturn from
64-bit to 32-bit context.  We do not have a way to construct a static 32-bit
shadow stack.
Why? What's the limiting factor?  Hardware architecture?  Something in
the kernel?
Why do we want that?  I think we can simply run the test with CET
disabled.
The sadistic parts of selftests/x86 come from real bugs.  Either bugs
where the kernel fell over, or where behavior changed that broke apps.
I'd suggest doing some research on where that particular test case came
from.  Find the author of the test, look at the changelogs.

If this is something that a real app does, this is a problem.  If it's a
sadistic test that Andy L added because it was an attack vector against
the entry code, it's a different story.

I don't personally know the background, but the changelogs can help you
find the person that does.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help