]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
netfilter: x_tables: validate targets of jumps
authorFlorian Westphal <fw@strlen.de>
Fri, 1 Apr 2016 12:17:22 +0000 (14:17 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 24 Jun 2016 17:22:05 +0000 (10:22 -0700)
commita1a983f0dc802a9cead25a3d02f2b58ed2e41720
tree298173e6bf4403ff62186259f5345c418a9a0750
parent765dd5d6d074e28ce20fbe09469b4d7760e00934
netfilter: x_tables: validate targets of jumps

commit 36472341017529e2b12573093cc0f68719300997 upstream.

When we see a jump also check that the offset gets us to beginning of
a rule (an ipt_entry).

The extra overhead is negible, even with absurd cases.

300k custom rules, 300k jumps to 'next' user chain:
[ plus one jump from INPUT to first userchain ]:

Before:
real    0m24.874s
user    0m7.532s
sys     0m16.076s

After:
real    0m27.464s
user    0m7.436s
sys     0m18.840s

Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/ipv4/netfilter/arp_tables.c
net/ipv4/netfilter/ip_tables.c
net/ipv6/netfilter/ip6_tables.c