netfilter: x_tables: avoid stack-out-of-bounds read in xt_copy_counters_from_user
authorEric Dumazet <edumazet@google.com>
Thu, 5 Oct 2017 09:50:07 +0000 (02:50 -0700)
committerPablo Neira Ayuso <pablo@netfilter.org>
Fri, 6 Oct 2017 13:04:05 +0000 (15:04 +0200)
commite466af75c074e76107ae1cd5a2823e9c61894ffb
treed89583ebd5b7d23418dbc0d44472f60eecd66ccd
parent5f9bfe0ef622a7bb9707c22ceb4b6451e1e2cb7b
netfilter: x_tables: avoid stack-out-of-bounds read in xt_copy_counters_from_user

syzkaller reports an out of bound read in strlcpy(), triggered
by xt_copy_counters_from_user()

Fix this by using memcpy(), then forcing a zero byte at the last position
of the destination, as Florian did for the non COMPAT code.

Fixes: d7591f0c41ce ("netfilter: x_tables: introduce and use xt_copy_counters_from_user")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Willem de Bruijn <willemb@google.com>
Acked-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/x_tables.c