• Florian Westphal's avatar
    netfilter: arp_tables: init netns pointer in xt_tgdtor_param struct · 212e7f56
    Florian Westphal authored
    An earlier commit (1b789577,
    "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: add67461 ("netfilter: add struct net * to target parameters")
    Reported-by: syzbot+91bdd8eece0f6629ec8b@syzkaller.appspotmail.com
    Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
    Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
    212e7f56
arp_tables.c 39.4 KB