2018-08-15 20:56:33

by Kees Cook

[permalink] [raw]
Subject: Re: [GIT PULL] gcc-plugin updates for v4.19-rc1

On Wed, Aug 15, 2018 at 1:18 PM, Linus Torvalds
<[email protected]> wrote:
> I absolutely refuse to take any hardening patches at all that have
> BUG() or panic() or similar machine-killing in it.

Okay, mental model adjusted. :) It was only "strong discouraged" until now.

> I thought VLA's were mostly gone.

Yes. Out of the ~115 instances we counted when we started with v4.16,
we've chipped away at them pretty steadily. Right now there are two
"one-off"s that haven't been picked up by maintainers:

https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git/log/?h=vla/leftovers

and the remaining series against crypto, for which I am waiting on
further review for Herbert. All the really odd-ball crypto cases have
been handled (and are up for the merge window for v4.19), but there's
still some minor changes that Herbert is examining:

https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git/log/?h=vla/crypto

And after that, there's a single patch to move -Wvla up into the
top-level Makefile:

https://patchwork.kernel.org/patch/10489873/

So, we're basically done, but the timing with the merge window wasn't
great since crypto continues to get tweaked and has taken much longer
than I had expected.

-Kees

--
Kees Cook
Pixel Security


2018-08-15 21:18:56

by Alexander Popov

[permalink] [raw]
Subject: Re: [GIT PULL] gcc-plugin updates for v4.19-rc1

On 15.08.2018 23:56, Kees Cook wrote:
> On Wed, Aug 15, 2018 at 1:18 PM, Linus Torvalds <[email protected]> wrote:
>> I absolutely refuse to take any hardening patches at all that have
>> BUG() or panic() or similar machine-killing in it.
>
> Okay, mental model adjusted. :) It was only "strong discouraged" until now.

I've just got the insight, how to avoid having BUG_ON() in stackleak_erase().
If 'task_struct.lowest_stack' is corrupted, we can erase once starting from the
stack bottom and reset the 'lowest_stack' value.

>> I care not one whit about the reason for them. In fact, if the reason
>> is stated as "it makes debugging easiler", then I fart in your general
>> direction and call your mother a hamster.

That is plain harassment. I ask to *stop* it!

--
Alexander

2018-08-15 21:33:10

by Linus Torvalds

[permalink] [raw]
Subject: Re: [GIT PULL] gcc-plugin updates for v4.19-rc1

On Wed, Aug 15, 2018 at 2:19 PM Alexander Popov <[email protected]> wrote:
>
> >> I fart in your general
> >> direction and call your mother a hamster.
>
> That is plain harassment. I ask to *stop* it!

The correct reply is

"Is there someone else up there we can talk to?"

just google for it if you haven't seen the Holy Grail.

(And I got the quote wrong too. I forgot about how your father smelt
of elderberries)

Linus

2018-08-16 22:18:10

by Alexander Popov

[permalink] [raw]
Subject: Re: [GIT PULL] gcc-plugin updates for v4.19-rc1

Hello,

On 15.08.2018 23:56, Kees Cook wrote:
> On Wed, Aug 15, 2018 at 1:18 PM, Linus Torvalds
> <[email protected]> wrote:
>> I absolutely refuse to take any hardening patches at all that have
>> BUG() or panic() or similar machine-killing in it.
>
> Okay, mental model adjusted. :) It was only "strong discouraged" until now.
>
>> I thought VLA's were mostly gone.
...
> And after that, there's a single patch to move -Wvla up into the
> top-level Makefile:
>
> https://patchwork.kernel.org/patch/10489873/
>
> So, we're basically done

I've just sent the 15th version of the series with changes according to the
feedback from Linus:

1. BUG_ON() in stackleak_erase() is safely eliminated;

2. Stack Clash detection (alloca() check) is completely dropped, since global
'-Wvla' should arrive soon. stackleak_check_alloca() for arm64 is dropped as
well in a separate commit.

This version is rebased onto Linus' tree.

Best regards,
Alexander