Re: BUG: corrupted list in account_entity_enqueue

From: Dmitry Vyukov
Date: Fri Jan 04 2019 - 06:12:46 EST


On Wed, Jan 2, 2019 at 6:02 PM syzbot
<syzbot+14005fa30c9a07192934@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
>
> syzbot has found a reproducer for the following crash on:
>
> HEAD commit: 4cd1b60def51 Add linux-next specific files for 20190102
> git tree: linux-next
> console output: https://syzkaller.appspot.com/x/log.txt?x=12b12dbf400000
> kernel config: https://syzkaller.appspot.com/x/.config?x=3bf665f887bd3d7e
> dashboard link: https://syzkaller.appspot.com/bug?extid=14005fa30c9a07192934
> compiler: gcc (GCC) 9.0.0 20181231 (experimental)
> syz repro: https://syzkaller.appspot.com/x/repro.syz?x=10621f53400000
> C reproducer: https://syzkaller.appspot.com/x/repro.c?x=154d0427400000
>
> IMPORTANT: if you fix the bug, please add the following tag to the commit:
> Reported-by: syzbot+14005fa30c9a07192934@xxxxxxxxxxxxxxxxxxxxxxxxx

Random manifestation of the stack overflow/corruption:

#syz dup: kernel panic: stack is corrupted in udp4_lib_lookup2

See https://groups.google.com/forum/#!msg/syzkaller-bugs/vr87kmG5qRI/31nOcuVsFgAJ

> list_add corruption. next->prev should be prev (ffff8880ae72d8d8), but was
> 0000000000000610. (next=ffff8880a94b64f0).
> ------------[ cut here ]------------
> kernel BUG at lib/list_debug.c:23!
> invalid opcode: 0000 [#1] PREEMPT SMP KASAN
> CPU: 1 PID: -1958513720 Comm: Not tainted 4.20.0-next-20190102 #2
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
> Google 01/01/2011
> RIP: 0010:__list_add_valid.cold+0xf/0x3c lib/list_debug.c:23
> Code: 34 fe eb d5 4c 89 e7 e8 3a 82 34 fe eb a3 4c 89 f7 e8 30 82 34 fe e9
> 56 ff ff ff 4c 89 e1 48 c7 c7 40 98 81 88 e8 00 cb d6 fd <0f> 0b 48 89 f2
> 4c 89 e1 4c 89 ee 48 c7 c7 80 99 81 88 e8 e9 ca d6
> RSP: 0018:ffff8880ae707648 EFLAGS: 00010086
> RAX: 0000000000000075 RBX: ffff8880a4783cc0 RCX: 0000000000000000
> RDX: 0000000000000000 RSI: ffffffff8167d786 RDI: ffffed1015ce0ebb
> RBP: ffff8880ae707660 R08: 0000000000000075 R09: ffffed1015ce5021
> R10: ffffed1015ce5020 R11: ffff8880ae728107 R12: ffff8880a94b64f0
> R13: ffff8880a843a530 R14: ffff8880ae7076e8 R15: ffff8880a843a530
> FS: 0000000000000000(0000) GS:ffff8880ae700000(0000) knlGS:0000000000000000
> CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: 0000000000000068 CR3: 00000000a43c7000 CR4: 00000000001406e0
> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
> Call Trace:
> <IRQ>
> __list_add include/linux/list.h:60 [inline]
> list_add include/linux/list.h:79 [inline]
> account_entity_enqueue+0x3a0/0x660 kernel/sched/fair.c:2678
> enqueue_entity+0x276/0x20b0 kernel/sched/fair.c:3902
> enqueue_task_fair+0x237/0x10c0 kernel/sched/fair.c:5133
> enqueue_task kernel/sched/core.c:730 [inline]
> activate_task+0x11d/0x470 kernel/sched/core.c:751
> ttwu_activate kernel/sched/core.c:1643 [inline]
> ttwu_do_activate+0xd4/0x1f0 kernel/sched/core.c:1702
> ttwu_queue kernel/sched/core.c:1847 [inline]
> try_to_wake_up+0x997/0x1480 kernel/sched/core.c:2057
> wake_up_process+0x10/0x20 kernel/sched/core.c:2129
> hrtimer_wakeup+0x48/0x60 kernel/time/hrtimer.c:1637
> __run_hrtimer kernel/time/hrtimer.c:1389 [inline]
> __hrtimer_run_queues+0x3a7/0x1050 kernel/time/hrtimer.c:1451
> hrtimer_interrupt+0x314/0x770 kernel/time/hrtimer.c:1509
> local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1035 [inline]
> smp_apic_timer_interrupt+0x18d/0x760 arch/x86/kernel/apic/apic.c:1060
> apic_timer_interrupt+0xf/0x20 arch/x86/entry/entry_64.S:807
> </IRQ>
> Modules linked in:
> ---[ end trace 21a00246ce9209ce ]---
> RIP: 0010:__list_add_valid.cold+0xf/0x3c lib/list_debug.c:23
> Code: 34 fe eb d5 4c 89 e7 e8 3a 82 34 fe eb a3 4c 89 f7 e8 30 82 34 fe e9
> 56 ff ff ff 4c 89 e1 48 c7 c7 40 98 81 88 e8 00 cb d6 fd <0f> 0b 48 89 f2
> 4c 89 e1 4c 89 ee 48 c7 c7 80 99 81 88 e8 e9 ca d6
> RSP: 0018:ffff8880ae707648 EFLAGS: 00010086
> RAX: 0000000000000075 RBX: ffff8880a4783cc0 RCX: 0000000000000000
> RDX: 0000000000000000 RSI: ffffffff8167d786 RDI: ffffed1015ce0ebb
> RBP: ffff8880ae707660 R08: 0000000000000075 R09: ffffed1015ce5021
> R10: ffffed1015ce5020 R11: ffff8880ae728107 R12: ffff8880a94b64f0
> R13: ffff8880a843a530 R14: ffff8880ae7076e8 R15: ffff8880a843a530
> FS: 0000000000000000(0000) GS:ffff8880ae700000(0000) knlGS:0000000000000000
> CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: 0000000000000068 CR3: 00000000a43c7000 CR4: 00000000001406e0
> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
>
> --
> 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+unsubscribe@xxxxxxxxxxxxxxxxx
> To view this discussion on the web visit https://groups.google.com/d/msgid/syzkaller-bugs/000000000000f9aaa5057e7c9ad5%40google.com.
> For more options, visit https://groups.google.com/d/optout.