]> git.baikalelectronics.ru Git - kernel.git/commit
netfilter: arp_tables: init netns pointer in xt_tgdtor_param struct
authorFlorian Westphal <fw@strlen.de>
Sat, 11 Jan 2020 22:19:53 +0000 (23:19 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Mon, 13 Jan 2020 18:22:10 +0000 (19:22 +0100)
commitba5305c80aaed1cb243f155fd91087994789152d
tree5f846c7ef2539b28cce9b9539714286b8b69b6f3
parentab4451b0c441bfaa9e8304399207371e8580cc3c
netfilter: arp_tables: init netns pointer in xt_tgdtor_param struct

An earlier commit (6769cd915091a133cf35d2,
"netfilter: arp_tables: init netns pointer in xt_tgchk_param struct")
fixed missing net initialization for arptables, but turns out it was
incomplete.  We can get a very similar struct net NULL deref during
error unwinding:

general protection fault: 0000 [#1] PREEMPT SMP KASAN
RIP: 0010:xt_rateest_put+0xa1/0x440 net/netfilter/xt_RATEEST.c:77
 xt_rateest_tg_destroy+0x72/0xa0 net/netfilter/xt_RATEEST.c:175
 cleanup_entry net/ipv4/netfilter/arp_tables.c:509 [inline]
 translate_table+0x11f4/0x1d80 net/ipv4/netfilter/arp_tables.c:587
 do_replace net/ipv4/netfilter/arp_tables.c:981 [inline]
 do_arpt_set_ctl+0x317/0x650 net/ipv4/netfilter/arp_tables.c:1461

Also init the netns pointer in xt_tgdtor_param struct.

Fixes: 6be6784797120d ("netfilter: add struct net * to target parameters")
Reported-by: syzbot+91bdd8eece0f6629ec8b@syzkaller.appspotmail.com
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/ipv4/netfilter/arp_tables.c