RE: [PATCH] x86 : Ensure X86_FLAGS_NT is cleared on syscall entry

From: Anish Bhatt
Date: Fri Sep 26 2014 - 18:11:49 EST


> -----Original Message-----
> From: Chuck Ebbert [mailto:cebbert.lkml@xxxxxxxxx]
> Sent: Friday, September 26, 2014 3:01 PM
> To: Anish Bhatt
> Cc: linux-kernel@xxxxxxxxxxxxxxx; x86@xxxxxxxxxx; tglx@xxxxxxxxxxxxx;
> mingo@xxxxxxxxxx; hpa@xxxxxxxxx; sebastian@xxxxxxxxxxx; Linus
> Torvalds
> Subject: Re: [PATCH] x86 : Ensure X86_FLAGS_NT is cleared on syscall entry
>
> On Thu, 25 Sep 2014 12:42:51 -0700
> Anish Bhatt <anish@xxxxxxxxxxx> wrote:
>
> > The MSR_SYSCALL_MASK, which is responsible for clearing specific
> > EFLAGS on syscall entry, should also clear the nested task (NT) flag
> > to be safe from userspace injection. Without this fix the application
> > segmentation faults on syscall return because of the changed meaning
> > of the IRET instruction.
> >
> > Further details can be seen here
> > https://bugs.winehq.org/show_bug.cgi?id=33275
> >
> > Signed-off-by: Anish Bhatt <anish@xxxxxxxxxxx>
> > Signed-off-by: Sebastian Lackner <sebastian@xxxxxxxxxxx>
> > ---
> > arch/x86/kernel/cpu/common.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/arch/x86/kernel/cpu/common.c
> > b/arch/x86/kernel/cpu/common.c index e4ab2b4..3126558 100644
> > --- a/arch/x86/kernel/cpu/common.c
> > +++ b/arch/x86/kernel/cpu/common.c
> > @@ -1184,7 +1184,7 @@ void syscall_init(void)
> > /* Flags to clear on syscall */
> > wrmsrl(MSR_SYSCALL_MASK,
> > X86_EFLAGS_TF|X86_EFLAGS_DF|X86_EFLAGS_IF|
> > - X86_EFLAGS_IOPL|X86_EFLAGS_AC);
> > + X86_EFLAGS_IOPL|X86_EFLAGS_AC|X86_EFLAGS_NT);
> > }
> >
> > /*
>
> I don't get it. Why isn't this patch acceptable, at least on x86-64 where NT is
> never valid?
>
> Bueller?

Chuck, I don't think anyone has gotten around to reviewing, accepting or
rejecting this patch yet.
-Anish
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/