Re: [PATCH v3 3/4] x86/signal: Prevent an alternate stack overflow before a signal delivery

From: Jann Horn
Date: Wed Dec 23 2020 - 02:00:31 EST


On Wed, Dec 23, 2020 at 2:57 AM Chang S. Bae <chang.seok.bae@xxxxxxxxx> wrote:
> The kernel pushes data on the userspace stack when entering a signal. If
> using a sigaltstack(), the kernel precisely knows the user stack size.
>
> When the kernel knows that the user stack is too small, avoid the overflow
> and do an immediate SIGSEGV instead.
>
> This overflow is known to occur on systems with large XSAVE state. The
> effort to increase the size typically used for altstacks reduces the
> frequency of these overflows, but this approach is still useful for legacy
> binaries.
>
> Suggested-by: Jann Horn <jannh@xxxxxxxxxx>
> Signed-off-by: Chang S. Bae <chang.seok.bae@xxxxxxxxx>
> Reviewed-by: Len Brown <len.brown@xxxxxxxxx>
> Cc: Jann Horn <jannh@xxxxxxxxxx>
> Cc: x86@xxxxxxxxxx
> Cc: linux-kernel@xxxxxxxxxxxxxxx

Reviewed-by: Jann Horn <jannh@xxxxxxxxxx>