Re: [PATCHv2] netlink: Don't shift on 64 for ngroups

From: David Miller
Date: Sat Aug 04 2018 - 20:53:50 EST


From: Dmitry Safonov <dima@xxxxxxxxxx>
Date: Sun, 5 Aug 2018 01:35:53 +0100

> It's legal to have 64 groups for netlink_sock.
>
> As user-supplied nladdr->nl_groups is __u32, it's possible to subscribe
> only to first 32 groups.
>
> The check for correctness of .bind() userspace supplied parameter
> is done by applying mask made from ngroups shift. Which broke Android
> as they have 64 groups and the shift for mask resulted in an overflow.
>
> Fixes: 61f4b23769f0 ("netlink: Don't shift with UB on nlk->ngroups")
> Reported-and-Tested-by: Nathan Chancellor <natechancellor@xxxxxxxxx>
> Signed-off-by: Dmitry Safonov <dima@xxxxxxxxxx>

Applied and queued up for -stable.