Re: Patch "net: xfrm: fix shift-out-of-bounds in xfrm_get_default" has been added to the 5.10-stable tree

From: Greg KH
Date: Mon May 23 2022 - 12:44:30 EST


On Mon, May 23, 2022 at 06:34:44PM +0200, gregkh@xxxxxxxxxxxxxxxxxxx wrote:
>
> This is a note to let you know that I've just added the patch titled
>
> net: xfrm: fix shift-out-of-bounds in xfrm_get_default
>
> to the 5.10-stable tree which can be found at:
> http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
>
> The filename of the patch is:
> net-xfrm-fix-shift-out-of-bounds-in-xfrm_get_default.patch
> and it can be found in the queue-5.10 subdirectory.
>
> If you, or anyone else, feels it should not be added to the stable tree,
> please let <stable@xxxxxxxxxxxxxxx> know about it.
>
>
> >From 3c10ffddc61f8a1a59e29a110ba70b47e679206a Mon Sep 17 00:00:00 2001
> From: Pavel Skripkin <paskripkin@xxxxxxxxx>
> Date: Thu, 2 Sep 2021 22:04:00 +0300
> Subject: net: xfrm: fix shift-out-of-bounds in xfrm_get_default
>
> From: Pavel Skripkin <paskripkin@xxxxxxxxx>
>
> commit 3c10ffddc61f8a1a59e29a110ba70b47e679206a upstream.
>
> Syzbot hit shift-out-of-bounds in xfrm_get_default. The problem was in
> missing validation check for user data.
>
> up->dirmask comes from user-space, so we need to check if this value
> is less than XFRM_USERPOLICY_DIRMASK_MAX to avoid shift-out-of-bounds bugs.
>
> Fixes: 2d151d39073a ("xfrm: Add possibility to set the default to block if we have no policy")
> Reported-and-tested-by: syzbot+b2be9dd8ca6f6c73ee2d@xxxxxxxxxxxxxxxxxxxxxxxxx
> Signed-off-by: Pavel Skripkin <paskripkin@xxxxxxxxx>
> Signed-off-by: Steffen Klassert <steffen.klassert@xxxxxxxxxxx>
> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> ---
> net/xfrm/xfrm_user.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> --- a/net/xfrm/xfrm_user.c
> +++ b/net/xfrm/xfrm_user.c
> @@ -1989,6 +1989,11 @@ static int xfrm_get_default(struct sk_bu
> return -EMSGSIZE;
> }
>
> + if (up->dirmask >= XFRM_USERPOLICY_DIRMASK_MAX) {
> + kfree_skb(r_skb);
> + return -EINVAL;
> + }
> +
> r_up = nlmsg_data(r_nlh);
> r_up->in = net->xfrm.policy_default[XFRM_POLICY_IN];
> r_up->fwd = net->xfrm.policy_default[XFRM_POLICY_FWD];
>
>
> Patches currently in stable-queue which might be from paskripkin@xxxxxxxxx are
>
> queue-5.10/net-xfrm-fix-shift-out-of-bounce.patch
> queue-5.10/net-xfrm-fix-shift-out-of-bounds-in-xfrm_get_default.patch

Nevermind, this breaks the build, now dropping it.

greg k-h