On Wed, Dec 12, 2018 at 12:02 PM Dmitry Vyukov <dvyu...@google.com> wrote: > > On Wed, Dec 12, 2018 at 11:57 AM syzbot > <syzbot+9af93090b1662f253...@syzkaller.appspotmail.com> wrote: > > > > Hello, > > > > syzbot found the following crash on: > > > > HEAD commit: f5d582777bcb Merge branch 'for-linus' of git://git.kernel... > > git tree: upstream > > console output: https://syzkaller.appspot.com/x/log.txt?x=1657b01b400000 > > kernel config: https://syzkaller.appspot.com/x/.config?x=c8970c89a0efbb23 > > dashboard link: https://syzkaller.appspot.com/bug?extid=9af93090b1662f253d62 > > compiler: gcc (GCC) 8.0.1 20180413 (experimental) > > userspace arch: i386 > > syz repro: https://syzkaller.appspot.com/x/repro.syz?x=118448cd400000 > > C reproducer: https://syzkaller.appspot.com/x/repro.c?x=17f32705400000 > > From the reproducer it looks like a dup of TIPC bug: > > #syz dup: KASAN: use-after-free Read in kfree_skb (2)
A good question is how this skb double-free gets past KASAN and silently corrupts memory? Does it just exploit the narrow race between KASAN check and actual memory write or there is something more fundamental?... > > IMPORTANT: if you fix the bug, please add the following tag to the commit: > > Reported-by: syzbot+9af93090b1662f253...@syzkaller.appspotmail.com > > > > Enabling of bearer <udp:syz1> rejected, already enabled > > Enabling of bearer <udp:syz1> rejected, already enabled > > Enabling of bearer <udp:syz1> rejected, already enabled > > kasan: CONFIG_KASAN_INLINE enabled > > kasan: GPF could be caused by NULL-ptr deref or user memory access > > general protection fault: 0000 [#1] PREEMPT SMP KASAN > > CPU: 0 PID: 9250 Comm: syz-executor424 Not tainted 4.20.0-rc6+ #274 > > Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS > > Google 01/01/2011 > > RIP: 0010:lock_accessed kernel/locking/lockdep.c:964 [inline] > > RIP: 0010:__bfs+0x3d9/0x780 kernel/locking/lockdep.c:1032 > > Code: 7c 24 c0 41 c6 45 00 f8 74 7c 49 8d 7f 10 4c 89 fe 4c 8b 0d 89 8a aa > > 09 48 89 f8 48 81 ee 20 55 eb 8a 48 c1 e8 03 48 c1 fe 06 <42> 80 3c 30 00 > > 0f 85 d4 01 00 00 4d 8b 47 10 49 8d 40 2c 48 89 c7 > > RSP: 0018:ffff8881dae06c88 EFLAGS: 00010003 > > RAX: 0000000000000002 RBX: ffffffff8ae100d0 RCX: 1ffff1103b5c0db1 > > RDX: 1ffffffff15c201a RSI: 0000000001d452ab RDI: 0000000000000010 > > RBP: ffff8881dae06df0 R08: 0000000000000001 R09: 0000000000001b46 > > R10: ffffed103b5c5b5f R11: ffff8881c3dba240 R12: ffff8881dae06dc8 > > R13: ffffed103b5c0db1 R14: dffffc0000000000 R15: 0000000000000000 > > FS: 0000000000000000(0000) GS:ffff8881dae00000(0063) knlGS:0000000009355840 > > CS: 0010 DS: 002b ES: 002b CR0: 0000000080050033 > > CR2: 0000000008100000 CR3: 00000001c34e9000 CR4: 00000000001406f0 > > DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 > > DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 > > Call Trace: > > <IRQ> > > __bfs_forwards kernel/locking/lockdep.c:1060 [inline] > > find_usage_forwards kernel/locking/lockdep.c:1360 [inline] > > check_usage_forwards+0x163/0x3d0 kernel/locking/lockdep.c:2572 > > mark_lock_irq kernel/locking/lockdep.c:2687 [inline] > > mark_lock+0x9b5/0x1cd0 kernel/locking/lockdep.c:3059 > > mark_irqflags kernel/locking/lockdep.c:2937 [inline] > > __lock_acquire+0x155f/0x4c20 kernel/locking/lockdep.c:3298 > > lock_acquire+0x1ed/0x520 kernel/locking/lockdep.c:3844 > > __raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline] > > _raw_spin_lock+0x2d/0x40 kernel/locking/spinlock.c:144 > > spin_lock include/linux/spinlock.h:329 [inline] > > __queue_work+0xc1b/0x1440 kernel/workqueue.c:1414 > > delayed_work_timer_fn+0x5d/0x90 kernel/workqueue.c:1500 > > call_timer_fn+0x272/0x920 kernel/time/timer.c:1326 > > expire_timers kernel/time/timer.c:1359 [inline] > > __run_timers+0x723/0xc70 kernel/time/timer.c:1682 > > run_timer_softirq+0x52/0xb0 kernel/time/timer.c:1695 > > __do_softirq+0x308/0xb7e kernel/softirq.c:292 > > invoke_softirq kernel/softirq.c:373 [inline] > > irq_exit+0x17f/0x1c0 kernel/softirq.c:413 > > exiting_irq arch/x86/include/asm/apic.h:536 [inline] > > smp_apic_timer_interrupt+0x1cb/0x760 arch/x86/kernel/apic/apic.c:1061 > > apic_timer_interrupt+0xf/0x20 arch/x86/entry/entry_64.S:807 > > </IRQ> > > RIP: 0010:arch_local_irq_restore arch/x86/include/asm/paravirt.h:761 > > [inline] > > RIP: 0010:console_unlock+0xf41/0x1190 kernel/printk/printk.c:2422 > > Code: 48 89 f8 48 c1 e8 03 42 80 3c 30 00 0f 85 54 02 00 00 48 83 3d 9f 84 > > ec 07 00 74 72 e8 18 08 1a 00 48 8b bd b0 fe ff ff 57 9d <0f> 1f 44 00 00 > > e9 f3 f2 ff ff e8 00 08 1a 00 0f 0b e8 f9 07 1a 00 > > RSP: 0018:ffff8881d9246d08 EFLAGS: 00000293 ORIG_RAX: ffffffffffffff13 > > RAX: ffff8881c3dba240 RBX: 0000000000000200 RCX: 1ffff110387b756b > > RDX: 0000000000000000 RSI: ffffffff81657c58 RDI: 0000000000000293 > > RBP: ffff8881d9246e78 R08: ffff8881c3dbab58 R09: 0000000000000006 > > R10: 0000000000000000 R11: ffff8881c3dba240 R12: 0000000000000000 > > R13: ffffffff849c4410 R14: dffffc0000000000 R15: ffffffff89b639d0 > > vprintk_emit+0x391/0x990 kernel/printk/printk.c:1922 > > vprintk_default+0x28/0x30 kernel/printk/printk.c:1964 > > vprintk_func+0x7e/0x181 kernel/printk/printk_safe.c:398 > > printk+0xa7/0xcf kernel/printk/printk.c:1997 > > tipc_enable_bearer+0x4ad/0xf10 net/tipc/bearer.c:338 > > __tipc_nl_bearer_enable+0x37c/0x4a0 net/tipc/bearer.c:897 > > tipc_nl_bearer_enable+0x22/0x30 net/tipc/bearer.c:905 > > genl_family_rcv_msg+0x8a7/0x11a0 net/netlink/genetlink.c:601 > > genl_rcv_msg+0xc6/0x168 net/netlink/genetlink.c:626 > > netlink_rcv_skb+0x172/0x440 net/netlink/af_netlink.c:2477 > > genl_rcv+0x28/0x40 net/netlink/genetlink.c:637 > > netlink_unicast_kernel net/netlink/af_netlink.c:1310 [inline] > > netlink_unicast+0x5a5/0x760 net/netlink/af_netlink.c:1336 > > netlink_sendmsg+0xa18/0xfc0 net/netlink/af_netlink.c:1917 > > sock_sendmsg_nosec net/socket.c:621 [inline] > > sock_sendmsg+0xd5/0x120 net/socket.c:631 > > ___sys_sendmsg+0x7fd/0x930 net/socket.c:2116 > > __sys_sendmsg+0x11d/0x280 net/socket.c:2154 > > __compat_sys_sendmsg net/compat.c:754 [inline] > > __do_compat_sys_sendmsg net/compat.c:761 [inline] > > __se_compat_sys_sendmsg net/compat.c:758 [inline] > > __ia32_compat_sys_sendmsg+0x7a/0xb0 net/compat.c:758 > > do_syscall_32_irqs_on arch/x86/entry/common.c:326 [inline] > > do_fast_syscall_32+0x34d/0xfb2 arch/x86/entry/common.c:397 > > entry_SYSENTER_compat+0x70/0x7f arch/x86/entry/entry_64_compat.S:139 > > RIP: 0023:0xf7f0fa29 > > Code: 85 d2 74 02 89 0a 5b 5d c3 8b 04 24 c3 8b 14 24 c3 8b 3c 24 c3 90 90 > > 90 90 90 90 90 90 90 90 90 90 51 52 55 89 e5 0f 34 cd 80 <5d> 5a 59 c3 90 > > 90 90 90 eb 0d 90 90 90 90 90 90 90 90 90 90 90 90 > > RSP: 002b:000000000820fd6c EFLAGS: 00000213 ORIG_RAX: 0000000000000172 > > RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 0000000020001e40 > > RDX: 0000000000000080 RSI: 0000000000000000 RDI: 0000000000000122 > > RBP: 0000000000010b54 R08: 0000000000000000 R09: 0000000000000000 > > R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000 > > R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000 > > Modules linked in: > > ---[ end trace fc7927d741510429 ]--- > > RIP: 0010:lock_accessed kernel/locking/lockdep.c:964 [inline] > > RIP: 0010:__bfs+0x3d9/0x780 kernel/locking/lockdep.c:1032 > > Code: 7c 24 c0 41 c6 45 00 f8 74 7c 49 8d 7f 10 4c 89 fe 4c 8b 0d 89 8a aa > > 09 48 89 f8 48 81 ee 20 55 eb 8a 48 c1 e8 03 48 c1 fe 06 <42> 80 3c 30 00 > > 0f 85 d4 01 00 00 4d 8b 47 10 49 8d 40 2c 48 89 c7 > > RSP: 0018:ffff8881dae06c88 EFLAGS: 00010003 > > RAX: 0000000000000002 RBX: ffffffff8ae100d0 RCX: 1ffff1103b5c0db1 > > RDX: 1ffffffff15c201a RSI: 0000000001d452ab RDI: 0000000000000010 > > RBP: ffff8881dae06df0 R08: 0000000000000001 R09: 0000000000001b46 > > R10: ffffed103b5c5b5f R11: ffff8881c3dba240 R12: ffff8881dae06dc8 > > R13: ffffed103b5c0db1 R14: dffffc0000000000 R15: 0000000000000000 > > FS: 0000000000000000(0000) GS:ffff8881dae00000(0063) knlGS:0000000009355840 > > CS: 0010 DS: 002b ES: 002b CR0: 0000000080050033 > > CR2: 0000000008100000 CR3: 00000001c34e9000 CR4: 00000000001406f0 > > DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 > > DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 > > > > > > --- > > This bug is generated by a bot. It may contain errors. > > See https://goo.gl/tpsmEJ for more information about syzbot. > > syzbot engineers can be reached at syzkal...@googlegroups.com. > > > > syzbot will keep track of this bug report. See: > > https://goo.gl/tpsmEJ#bug-status-tracking for how to communicate with > > syzbot. > > syzbot can test patches for this bug, for details see: > > https://goo.gl/tpsmEJ#testing-patches > > > > -- > > You received this message because you are subscribed to the Google Groups > > "syzkaller-bugs" group. > > To unsubscribe from this group and stop receiving emails from it, send an > > email to syzkaller-bugs+unsubscr...@googlegroups.com. > > To view this discussion on the web visit > > https://groups.google.com/d/msgid/syzkaller-bugs/000000000000e0642f057cd10e42%40google.com. > > For more options, visit https://groups.google.com/d/optout.