Re: [tip:x86/urgent] x86-64, modify_ldt: Ban 16-bit segments on 64-bit kernels

From: Ingo Molnar
Date: Mon Apr 14 2014 - 03:28:16 EST



* H. Peter Anvin <hpa@xxxxxxxxxxxxxxx> wrote:

> On 04/11/2014 11:41 AM, Linus Torvalds wrote:
> >
> > Ok, so you actually do this on x86-64, and it currently works? For
> > some reason I thought that 16-bit windows apps already didn't work.
> >
>
> Some will work, because not all 16-bit software care about the upper
> half of ESP getting randomly corrupted.
>
> That is the "functionality bit" of the problem. The other bit, of
> course, is that that random corruption is the address of the kernel stack.
>
> > Because if we have working users of this, then I don't think we can do
> > the "we don't support 16-bit segments", or at least we need to make it
> > runtime configurable.
>
> I'll let you pick what the policy should be here. I personally
> think that we have to be able to draw a line somewhere sometimes
> (Microsoft themselves haven't supported running 16-bit binaries for
> several Windows generations now), but it is your policy, not mine.

I think the mmap_min_addr model works pretty well:

- it defaults to secure

- allow a security policy to grant an exception to a known package,
built by the distro

- end user can also grant an exception

This essentially punts any 'makes the system less secure' exceptions
to the distro and the end user.

Thanks,

Ingo
--
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/