syzbot


KASAN: slab-out-of-bounds Read in icmpv6_xrlim_allow

Status: auto-closed as invalid on 2019/10/25 08:49
Reported-by: syzbot+14536436e78408172703@syzkaller.appspotmail.com
First crash: 1339d, last: 1325d

Sample crash report:
==================================================================
BUG: KASAN: slab-out-of-bounds in icmpv6_xrlim_allow+0x409/0x440 net/ipv6/icmp.c:216
Read of size 8 at addr ffff88809776843f by task blkid/4049

CPU: 0 PID: 4049 Comm: blkid Not tainted 5.2.0-rc2+ #22
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Call Trace:
 <IRQ>
 __dump_stack lib/dump_stack.c:77 [inline]
 dump_stack+0x172/0x1f0 lib/dump_stack.c:113
 print_address_description.cold+0x7c/0x20d mm/kasan/report.c:188
 __kasan_report.cold+0x1b/0x40 mm/kasan/report.c:317
 kasan_report+0x12/0x20 mm/kasan/common.c:614
 __asan_report_load8_noabort+0x14/0x20 mm/kasan/generic_report.c:132
 icmpv6_xrlim_allow+0x409/0x440 net/ipv6/icmp.c:216
 icmp6_send+0x1107/0x1e50 net/ipv6/icmp.c:540
 icmpv6_send+0xec/0x230 net/ipv6/ip6_icmp.c:43
 ip6_link_failure+0x2b/0x530 net/ipv6/route.c:2367
 dst_link_failure include/net/dst.h:416 [inline]
 ndisc_error_report+0xce/0x1c0 net/ipv6/ndisc.c:712
 neigh_invalidate+0x245/0x570 net/core/neighbour.c:1000
 neigh_timer_handler+0xc33/0xf30 net/core/neighbour.c:1086
 call_timer_fn+0x193/0x720 kernel/time/timer.c:1322
 expire_timers kernel/time/timer.c:1366 [inline]
 __run_timers kernel/time/timer.c:1685 [inline]
 __run_timers kernel/time/timer.c:1653 [inline]
 run_timer_softirq+0x66f/0x1740 kernel/time/timer.c:1698
 __do_softirq+0x25c/0x94c kernel/softirq.c:293
 invoke_softirq kernel/softirq.c:374 [inline]
 irq_exit+0x180/0x1d0 kernel/softirq.c:414
 exiting_irq arch/x86/include/asm/apic.h:536 [inline]
 smp_apic_timer_interrupt+0x13b/0x550 arch/x86/kernel/apic/apic.c:1068
 apic_timer_interrupt+0xf/0x20 arch/x86/entry/entry_64.S:806
 </IRQ>
RIP: 0010:arch_local_irq_restore arch/x86/include/asm/paravirt.h:767 [inline]
RIP: 0010:lock_release+0x4c1/0xa00 kernel/locking/lockdep.c:4325
Code: 00 00 00 00 00 48 c1 e8 03 80 3c 10 00 0f 85 25 03 00 00 48 83 3d de 0f 5b 07 00 0f 84 cc 01 00 00 48 8b bd 68 ff ff ff 57 9d <0f> 1f 44 00 00 48 b8 00 00 00 00 00 fc ff df 48 c7 04 03 00 00 00
RSP: 0018:ffff88805fe4f620 EFLAGS: 00000286 ORIG_RAX: ffffffffffffff13
RAX: 1ffffffff1164e7e RBX: 1ffff1100bfc9eca RCX: 1ffff1100c3215a6
RDX: dffffc0000000000 RSI: 1ffff1100c3215ad RDI: 0000000000000286
RBP: ffff88805fe4f6d8 R08: ffff88806190a4c0 R09: 0000000000000002
R10: ffffed1015d06be7 R11: ffff8880ae835f3b R12: ffff88806190a4c0
R13: ffffffff817beb4c R14: ffffffff8a65bd40 R15: ffff88805fe4f6b0
 rcu_lock_release include/linux/rcupdate.h:215 [inline]
 rcu_read_unlock include/linux/rcupdate.h:649 [inline]
 is_bpf_text_address+0xd3/0x170 kernel/bpf/core.c:714
 kernel_text_address+0x73/0xf0 kernel/extable.c:152
 __kernel_text_address+0xd/0x40 kernel/extable.c:107
 unwind_get_return_address arch/x86/kernel/unwind_frame.c:19 [inline]
 unwind_get_return_address+0x61/0xa0 arch/x86/kernel/unwind_frame.c:14
 arch_stack_walk+0x97/0xf0 arch/x86/kernel/stacktrace.c:26
 stack_trace_save+0xac/0xe0 kernel/stacktrace.c:123
 save_stack+0x23/0x90 mm/kasan/common.c:71
 set_track mm/kasan/common.c:79 [inline]
 __kasan_kmalloc mm/kasan/common.c:489 [inline]
 __kasan_kmalloc.constprop.0+0xcf/0xe0 mm/kasan/common.c:462
 kasan_slab_alloc+0xf/0x20 mm/kasan/common.c:497
 slab_post_alloc_hook mm/slab.h:437 [inline]
 slab_alloc mm/slab.c:3326 [inline]
 kmem_cache_alloc+0x11a/0x6f0 mm/slab.c:3488
 vm_area_alloc+0x20/0x110 kernel/fork.c:335
 mmap_region+0x964/0x1760 mm/mmap.c:1758
 do_mmap+0x8e2/0x1080 mm/mmap.c:1561
 do_mmap_pgoff include/linux/mm.h:2391 [inline]
 vm_mmap_pgoff+0x1c5/0x230 mm/util.c:363
 ksys_mmap_pgoff+0x4aa/0x630 mm/mmap.c:1611
 __do_sys_mmap arch/x86/kernel/sys_x86_64.c:100 [inline]
 __se_sys_mmap arch/x86/kernel/sys_x86_64.c:91 [inline]
 __x64_sys_mmap+0xe9/0x1b0 arch/x86/kernel/sys_x86_64.c:91
 do_syscall_64+0xfd/0x680 arch/x86/entry/common.c:301
 entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x7f45aca133ea
Code: 48 8d 3d 81 69 00 00 b2 84 e8 52 ec ff ff f7 d8 89 05 ae ad 20 00 eb c6 90 90 90 90 90 90 90 90 49 89 ca b8 09 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8d 0d 8a ad 20 00 31 d2 48 29 c2 89
RSP: 002b:00007ffcc3ba73b8 EFLAGS: 00000246 ORIG_RAX: 0000000000000009
RAX: ffffffffffffffda RBX: 00007f45acc1b9a8 RCX: 00007f45aca133ea
RDX: 0000000000000005 RSI: 000000000038c838 RDI: 0000000000000000
RBP: 00007ffcc3ba7710 R08: 0000000000000003 R09: 0000000000000000
R10: 0000000000000802 R11: 0000000000000246 R12: 00007ffcc3ba77f8
R13: 0000000000000002 R14: 0000000000000003 R15: 00007ffcc3ba7400

Allocated by task 8965:
 save_stack+0x23/0x90 mm/kasan/common.c:71
 set_track mm/kasan/common.c:79 [inline]
 __kasan_kmalloc mm/kasan/common.c:489 [inline]
 __kasan_kmalloc.constprop.0+0xcf/0xe0 mm/kasan/common.c:462
 kasan_slab_alloc+0xf/0x20 mm/kasan/common.c:497
 slab_post_alloc_hook mm/slab.h:437 [inline]
 slab_alloc mm/slab.c:3326 [inline]
 kmem_cache_alloc+0x11a/0x6f0 mm/slab.c:3488
 dst_alloc+0x10e/0x200 net/core/dst.c:93
 ip6_dst_alloc+0x34/0xa0 net/ipv6/route.c:356
 icmp6_dst_alloc+0x1a9/0x660 net/ipv6/route.c:2806
 ndisc_send_skb+0xfc1/0x14a0 net/ipv6/ndisc.c:488
 ndisc_send_ns+0x3a9/0x850 net/ipv6/ndisc.c:650
 rt6_probe_deferred+0xe3/0x1a0 net/ipv6/route.c:543
 process_one_work+0x989/0x1790 kernel/workqueue.c:2269
 worker_thread+0x98/0xe40 kernel/workqueue.c:2415
 kthread+0x354/0x420 kernel/kthread.c:255
 ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:352

Freed by task 17534:
 save_stack+0x23/0x90 mm/kasan/common.c:71
 set_track mm/kasan/common.c:79 [inline]
 __kasan_slab_free+0x102/0x150 mm/kasan/common.c:451
 kasan_slab_free+0xe/0x10 mm/kasan/common.c:459
 __cache_free mm/slab.c:3432 [inline]
 kmem_cache_free+0x86/0x260 mm/slab.c:3698
 dst_destroy+0x29e/0x3c0 net/core/dst.c:129
 dst_destroy_rcu+0x16/0x19 net/core/dst.c:142
 __rcu_reclaim kernel/rcu/rcu.h:222 [inline]
 rcu_do_batch kernel/rcu/tree.c:2092 [inline]
 invoke_rcu_callbacks kernel/rcu/tree.c:2310 [inline]
 rcu_core+0xba5/0x1500 kernel/rcu/tree.c:2291
 __do_softirq+0x25c/0x94c kernel/softirq.c:293

The buggy address belongs to the object at ffff888097768300
 which belongs to the cache ip6_dst_cache of size 224
The buggy address is located 95 bytes to the right of
 224-byte region [ffff888097768300, ffff8880977683e0)
The buggy address belongs to the page:
page:ffffea00025dda00 refcount:1 mapcount:0 mapping:ffff888216b94480 index:0xffff888097768580
flags: 0x1fffc0000000200(slab)
raw: 01fffc0000000200 ffffea00027ac888 ffffea00026fc6c8 ffff888216b94480
raw: ffff888097768580 ffff888097768080 0000000100000004 0000000000000000
page dumped because: kasan: bad access detected

Memory state around the buggy address:
 ffff888097768300: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
 ffff888097768380: fb fb fb fb fb fb fb fb fb fb fb fb fc fc fc fc
>ffff888097768400: fc fc fc fc fc fc fc fc 00 00 00 00 00 00 00 00
                                        ^
 ffff888097768480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 ffff888097768500: 00 00 00 00 fc fc fc fc fc fc fc fc fc fc fc fc
==================================================================

Crashes (6):
Manager Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets Title
ci-upstream-bpf-next-kasan-gce 2019/06/15 16:40 bpf-next 7f94208c8f9a 442206d7 .config console log report
ci-upstream-bpf-next-kasan-gce 2019/06/12 15:33 bpf-next aee450cbe482 794a1ad7 .config console log report
ci-upstream-bpf-next-kasan-gce 2019/06/05 11:29 bpf-next 6685699e4ef5 bfb4a51e .config console log report
ci-upstream-bpf-next-kasan-gce 2019/06/05 06:43 bpf-next 6685699e4ef5 bfb4a51e .config console log report
ci-upstream-bpf-next-kasan-gce 2019/06/04 04:39 bpf-next 0462eaacee49 ce07a7ae .config console log report
ci-upstream-bpf-next-kasan-gce 2019/06/02 02:58 bpf-next 0462eaacee49 53c81ea5 .config console log report
* Struck through repros no longer work on HEAD.