Re: [RFC][PATCH 04/10] x86/espfix: use kernel-default PTE mask

From: Andy Lutomirski
Date: Thu Feb 22 2018 - 16:59:50 EST


On Thu, Feb 22, 2018 at 9:30 PM, Dave Hansen
<dave.hansen@xxxxxxxxxxxxxxx> wrote:
> On 02/22/2018 01:27 PM, Nadav Amit wrote:
>> Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx> wrote:
>>> From: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
>>> In creating its page tables, the espfix code masks its PGTABLE_PROT
>>> value with the supported mask: __supported_pte_mask. This ensures
>>> that unsupported bits are not set in the final PTE. But, it also
>>> sets _PAGE_GLOBAL which we do not want for PTE. Use
>>> __default_kernel_pte_mask instead which clears _PAGE_GLOBAL for PTI.
>>
>> Can you please explain what is your concern? Exposing more gadgets for
>> speculative ROP attacks?
>>
>> Or is it a general rule of not exposing any kernel code &data more than
>> absolutely necessary?
>
> I think it's good practice to just expose only the *minimal* amount of
> data necessary. It's easier to audit and less likely to expose things
> accidentall.

But espfix64 is geniunely global. I'm confused.