Re: [PATCH 1/2] x86, pkeys: check against max pkey to avoid overflows
From: Kirill A. Shutemov
Date: Thu Feb 23 2017 - 19:08:59 EST
On Thu, Feb 23, 2017 at 02:26:03PM -0800, Dave Hansen wrote:
>
> From: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
>
> Kirill got a warning from UBSAN about undefined behavior when using
> protection keys. He is running on hardware that actually has support
> for it, which is not widely available.
>
> The warning was because we did some very large shifts of integers when
> doing a pkey_free() of a large, invalid value because we never check
> that the pkey "fits" into the mm_pkey_allocation_map().
>
> I do not believe there is any danger here of anything bad happening
> other than some aliasing issues where somebody could do:
>
> pkey_free(35);
>
> and the kernel would effectively execute:
>
> pkey_free(8);
>
> While this might be confusing to an app that was doing something
> stupid, it has to do something stupid and the effects are limited to
> the app shooting itself in the foot.
>
> Signed-off-by: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
Acked-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
--
Kirill A. Shutemov