xfrm: Validate address prefix lengths in the xfrm selector.
authorSteffen Klassert <steffen.klassert@secunet.com>
Wed, 1 Aug 2018 11:45:11 +0000 (13:45 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 10 Nov 2018 15:42:41 +0000 (07:42 -0800)
commit89cb86e9d42e1676840ca791ac233f51bceb9d4f
tree213bd71c8bfa815bf32010b743a01eb25b67f530
parentb24c9962b179803dc1d51f17cf1acc58be8bbb2e
xfrm: Validate address prefix lengths in the xfrm selector.

[ Upstream commit 07bf7908950a8b14e81aa1807e3c667eab39287a ]

We don't validate the address prefix lengths in the xfrm
selector we got from userspace. This can lead to undefined
behaviour in the address matching functions if the prefix
is too big for the given address family. Fix this by checking
the prefixes and refuse SA/policy insertation when a prefix
is invalid.

Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Reported-by: Air Icy <icytxw@gmail.com>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/xfrm/xfrm_user.c