Re: [PATCH v6 11/10] x86/retpoline: Avoid return buffer underflows on context switch

From: Peter Zijlstra
Date: Tue Jan 09 2018 - 08:11:16 EST


On Tue, Jan 09, 2018 at 01:04:20PM +0000, David Woodhouse wrote:
> On Mon, 2018-01-08 at 19:27 -0800, Andy Lutomirski wrote:
> > > 
> > > If SMEP is not active, speculation can go anywhere, including to a user
> > > controlled gadget which can reload any registers it needs, including
> > > with immediate constants.
> >
> > I thought that, even on pre-SMEP hardware, the CPU wouldn't
> > speculatively execute from NX pages.  And PTI marks user memory NX
> > in kernel mode.
>
> Hm, now that could be useful. 
>
> Do *all* the KPTI backports (some of which are reimplementations rather
> than strictly backports) mark user memory NX?

That doesn't really matter for upstream though; but see here:

https://lkml.kernel.org/r/1515502580-12261-5-git-send-email-w@xxxxxx