Messages in this thread | | | From | Kees Cook <> | Date | Wed, 15 Aug 2018 11:35:16 -0700 | Subject | Re: [GIT PULL] gcc-plugin updates for v4.19-rc1 |
| |
On Wed, Aug 15, 2018 at 9:41 AM, Linus Torvalds <torvalds@linux-foundation.org> wrote: > On Mon, Aug 13, 2018 at 2:43 PM Kees Cook <keescook@chromium.org> wrote: >> >> Please pull these gcc-plugin changes for v4.19-rc1. > > No. > > It adds yet another BUG_ON() without having been merged. > > I'm not pulling this. Dammit, have you learnt *nothing*?
I swear I'm doing my best. Are you speaking of stackleak_check_alloca() or stackleak_erase()? These were both discussed on the list, and we weren't able to come up with alternatives: in both cases we're off the stack, and recovery is seemingly impossible. What would you prefer in these cases? If I need to take a hard line of "never BUG", how do I handle legitimate system corruption? (i.e. I have interpreted this as different from narrowing copy_*_user() usage: if we let execution continue, we'll just crash somewhere else with likely less information on how to handle it.)
> I'm, disappointed in the whole feature, but I'm also tired of having > to go and even look for these things.
I am trying to make these patches easier to review. I even made sure to get Ingo's Ack and Alexander implemented additional features Ingo suggested, before sending them your way, as Ingo has a very conservative eye on.
> Then actually *finding* them makes me just pissed off.
I'm sorry we've disappointed you. I've been pushing back on patches that use BUG (with, I think, good success), but there are cases where our imagination fails us.
I'd really like to find a way for this plugin to be acceptable, given the coverage is provides. Even if we solve stack initialization and finish VLA removal, we still would benefit from something doing post-syscall stack poisoning just to keep future cache attacks against the stack minimized.
In the meantime, I will send the gcc-plugin cleanups separately...
-Kees
-- Kees Cook Pixel Security
| |