syzbot


BUG: corrupted list in nf_tables_commit

Status: fixed on 2020/02/18 14:31
Subsystems: netfilter
[Documentation on labels]
Reported-by: syzbot+37a6804945a3a13b1572@syzkaller.appspotmail.com
Fix commit: 335178d5429c netfilter: nf_tables: fix flowtable list del corruption
First crash: 1534d, last: 1533d
Cause bisection: introduced by (bisect log) :
commit 7c23b629a8085b11daccd68c62b5116ff498f84a
Author: Pablo Neira Ayuso <pablo@netfilter.org>
Date: Sun Jan 7 00:04:22 2018 +0000

  netfilter: flow table support for the mixed IPv4/IPv6 family

Crash: general protection fault in nf_tables_flowtable_lookup (log)
Repro: C syz .config
  
Discussions (7)
Title Replies (including bot) Last reply
[PATCH 5.4 000/222] 5.4.14-stable review 238 (238) 2020/01/26 16:57
[PATCH AUTOSEL 5.4 001/107] batman-adv: Fix DAT candidate selection on little endian systems 97 (97) 2020/01/24 21:08
[PATCH AUTOSEL 4.19 01/56] batman-adv: Fix DAT candidate selection on little endian systems 56 (56) 2020/01/24 14:20
[PATCH 4.19 000/103] 4.19.98-stable review 108 (108) 2020/01/22 20:53
[PATCH 0/9] Netfilter updates for net 11 (11) 2020/01/17 09:37
BUG: corrupted list in nf_tables_commit 0 (2) 2020/01/17 04:45
[PATCH nf] netfilter: nf_tables: fix flowtable list del corruption 2 (2) 2020/01/16 13:54
Similar bugs (1)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
linux-4.19 BUG: corrupted list in nf_tables_commit C done 2 1533d 1533d 1/1 fixed on 2020/02/16 09:59

Sample crash report:
list_del corruption, ffff8880a8bac800->prev is LIST_POISON2 (dead000000000122)
------------[ cut here ]------------
kernel BUG at lib/list_debug.c:48!
invalid opcode: 0000 [#1] PREEMPT SMP KASAN
CPU: 1 PID: 10832 Comm: syz-executor463 Not tainted 5.5.0-rc6-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
RIP: 0010:__list_del_entry_valid.cold+0x37/0x4f lib/list_debug.c:48
Code: be fd 0f 0b 4c 89 ea 4c 89 f6 48 c7 c7 20 66 71 88 e8 c0 e7 be fd 0f 0b 4c 89 e2 4c 89 f6 48 c7 c7 80 66 71 88 e8 ac e7 be fd <0f> 0b 4c 89 f6 48 c7 c7 40 67 71 88 e8 9b e7 be fd 0f 0b cc cc cc
RSP: 0018:ffffc90001bc73f0 EFLAGS: 00010282
RAX: 000000000000004e RBX: ffff8880a8bac800 RCX: 0000000000000000
RDX: 0000000000000000 RSI: ffffffff815e5396 RDI: fffff52000378e70
RBP: ffffc90001bc7408 R08: 000000000000004e R09: ffffed1015d26621
R10: ffffed1015d26620 R11: ffff8880ae933107 R12: dead000000000122
R13: ffff8880a9547580 R14: ffff8880a8bac800 R15: dffffc0000000000
FS:  0000000001283880(0000) GS:ffff8880ae900000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000020003ac0 CR3: 00000000a84f3000 CR4: 00000000001406e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
 __list_del_entry include/linux/list.h:131 [inline]
 list_del_rcu include/linux/rculist.h:148 [inline]
 nf_tables_commit+0x1068/0x3b30 net/netfilter/nf_tables_api.c:7183
 nfnetlink_rcv_batch+0xc78/0x17a0 net/netfilter/nfnetlink.c:485
 nfnetlink_rcv_skb_batch net/netfilter/nfnetlink.c:543 [inline]
 nfnetlink_rcv+0x3e7/0x460 net/netfilter/nfnetlink.c:561
 netlink_unicast_kernel net/netlink/af_netlink.c:1302 [inline]
 netlink_unicast+0x58c/0x7d0 net/netlink/af_netlink.c:1328
 netlink_sendmsg+0x91c/0xea0 net/netlink/af_netlink.c:1917
 sock_sendmsg_nosec net/socket.c:639 [inline]
 sock_sendmsg+0xd7/0x130 net/socket.c:659
 ____sys_sendmsg+0x753/0x880 net/socket.c:2330
 ___sys_sendmsg+0x100/0x170 net/socket.c:2384
 __sys_sendmsg+0x105/0x1d0 net/socket.c:2417
 __do_sys_sendmsg net/socket.c:2426 [inline]
 __se_sys_sendmsg net/socket.c:2424 [inline]
 __x64_sys_sendmsg+0x78/0xb0 net/socket.c:2424
 do_syscall_64+0xfa/0x790 arch/x86/entry/common.c:294
 entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x441aa9
Code: e8 fc ab 02 00 48 83 c4 18 c3 0f 1f 80 00 00 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 0f 83 9b 09 fc ff c3 66 2e 0f 1f 84 00 00 00 00
RSP: 002b:00007ffd42585ee8 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 0000000000441aa9
RDX: 0000000000000042 RSI: 0000000020003ac0 RDI: 0000000000000003
RBP: 0000000000006f6c R08: 00000000004002c8 R09: 00000000004002c8
R10: 0000000000000004 R11: 0000000000000246 R12: 00000000004028d0
R13: 0000000000402960 R14: 0000000000000000 R15: 0000000000000000
Modules linked in:
---[ end trace 69e70179a9306245 ]---
RIP: 0010:__list_del_entry_valid.cold+0x37/0x4f lib/list_debug.c:48
Code: be fd 0f 0b 4c 89 ea 4c 89 f6 48 c7 c7 20 66 71 88 e8 c0 e7 be fd 0f 0b 4c 89 e2 4c 89 f6 48 c7 c7 80 66 71 88 e8 ac e7 be fd <0f> 0b 4c 89 f6 48 c7 c7 40 67 71 88 e8 9b e7 be fd 0f 0b cc cc cc
RSP: 0018:ffffc90001bc73f0 EFLAGS: 00010282
RAX: 000000000000004e RBX: ffff8880a8bac800 RCX: 0000000000000000
RDX: 0000000000000000 RSI: ffffffff815e5396 RDI: fffff52000378e70
RBP: ffffc90001bc7408 R08: 000000000000004e R09: ffffed1015d26621
R10: ffffed1015d26620 R11: ffff8880ae933107 R12: dead000000000122
R13: ffff8880a9547580 R14: ffff8880a8bac800 R15: dffffc0000000000
FS:  0000000001283880(0000) GS:ffff8880ae900000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000020003ac0 CR3: 00000000a84f3000 CR4: 00000000001406e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400

Crashes (8):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2020/01/16 02:52 upstream 51d69817519f f9b69507 .config console log report syz C ci-upstream-kasan-gce-selinux-root
2020/01/16 01:18 upstream 51d69817519f f9b69507 .config console log report syz C ci-upstream-kasan-gce-root
2020/01/16 00:36 upstream 51d69817519f f9b69507 .config console log report syz C ci-upstream-kasan-gce-smack-root
2020/01/15 23:04 upstream 51d69817519f f9b69507 .config console log report syz C ci-upstream-kasan-gce
2020/01/15 22:44 upstream 51d69817519f f9b69507 .config console log report syz C ci-upstream-kasan-gce-smack-root
2020/01/16 03:00 upstream 51d69817519f f9b69507 .config console log report syz C ci-upstream-kasan-gce-386
2020/01/15 22:07 net-old 8b792f84c637 f9b69507 .config console log report syz C ci-upstream-net-this-kasan-gce
2020/01/15 20:45 net-next-old 4e2fa6b90275 f9b69507 .config console log report syz C ci-upstream-net-kasan-gce
* Struck through repros no longer work on HEAD.