syzbot


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

Status: public: reported syz repro on 2019/04/14 09:28
Reported-by: syzbot+90fe1fb263d3c28f8ad7@syzkaller.appspotmail.com
First crash: 2186d, last: 1609d
Similar bugs (3)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
android-414 KASAN: slab-out-of-bounds Read in tun_net_xmit C 3 1938d 1847d 0/1 public: reported C repro on 2019/04/10 16:04
upstream KASAN: slab-out-of-bounds Read in tun_net_xmit net 2 2395d 2385d 0/26 closed as invalid on 2017/12/06 12:46
upstream KASAN: slab-out-of-bounds Read in tun_net_xmit (2) net C 10 1948d 2115d 11/26 fixed on 2019/01/15 20:25

Sample crash report:
IPVS: Creating netns size=2536 id=2
IPVS: Creating netns size=2536 id=3
IPVS: Creating netns size=2536 id=4
IPVS: Creating netns size=2536 id=5
==================================================================
BUG: KASAN: slab-out-of-bounds in __ptr_ring_produce include/linux/ptr_ring.h:107 [inline]
BUG: KASAN: slab-out-of-bounds in ptr_ring_produce include/linux/ptr_ring.h:130 [inline]
BUG: KASAN: slab-out-of-bounds in skb_array_produce include/linux/skb_array.h:48 [inline]
BUG: KASAN: slab-out-of-bounds in tun_net_xmit+0x10bd/0x1180 drivers/net/tun.c:920
Read of size 8 at addr ffff8801cb159b78 by task swapper/1/0

CPU: 1 PID: 0 Comm: swapper/1 Not tainted 4.9.98-g63a812b #20
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
 ffff8801db3073e8 ffffffff81eb0e89 ffffea00072c5640 ffff8801cb159b78
 0000000000000000 ffff8801cb159b78 ffff8801d97ab848 ffff8801db307420
 ffffffff815652cb ffff8801cb159b78 0000000000000008 0000000000000000
Call Trace:
 <IRQ> [   23.911932]  [<ffffffff81eb0e89>] __dump_stack lib/dump_stack.c:15 [inline]
 <IRQ> [   23.911932]  [<ffffffff81eb0e89>] dump_stack+0xc1/0x128 lib/dump_stack.c:51
 [<ffffffff815652cb>] print_address_description+0x6c/0x234 mm/kasan/report.c:256
 [<ffffffff815656d5>] kasan_report_error mm/kasan/report.c:355 [inline]
 [<ffffffff815656d5>] kasan_report.cold.6+0x242/0x2fe mm/kasan/report.c:412
 [<ffffffff81539354>] __asan_report_load8_noabort+0x14/0x20 mm/kasan/report.c:433
 [<ffffffff82814a4d>] __ptr_ring_produce include/linux/ptr_ring.h:107 [inline]
 [<ffffffff82814a4d>] ptr_ring_produce include/linux/ptr_ring.h:130 [inline]
 [<ffffffff82814a4d>] skb_array_produce include/linux/skb_array.h:48 [inline]
 [<ffffffff82814a4d>] tun_net_xmit+0x10bd/0x1180 drivers/net/tun.c:920
 [<ffffffff830858b7>] __netdev_start_xmit include/linux/netdevice.h:4062 [inline]
 [<ffffffff830858b7>] netdev_start_xmit include/linux/netdevice.h:4071 [inline]
 [<ffffffff830858b7>] xmit_one net/core/dev.c:2955 [inline]
 [<ffffffff830858b7>] dev_hard_start_xmit+0x197/0x8b0 net/core/dev.c:2971
 [<ffffffff8311e64c>] sch_direct_xmit+0x2bc/0x590 net/sched/sch_generic.c:182
 [<ffffffff830879d2>] __dev_xmit_skb net/core/dev.c:3151 [inline]
 [<ffffffff830879d2>] __dev_queue_xmit+0x1742/0x2080 net/core/dev.c:3419
 [<ffffffff83088327>] dev_queue_xmit+0x17/0x20 net/core/dev.c:3484
 [<ffffffff8309ca55>] neigh_direct_output+0x15/0x20 net/core/neighbour.c:1362
 [<ffffffff83552c18>] dst_neigh_output include/net/dst.h:470 [inline]
 [<ffffffff83552c18>] ip6_finish_output2+0x8a8/0x1d00 net/ipv6/ip6_output.c:119
 [<ffffffff8355c3f8>] ip6_finish_output+0x3b8/0x760 net/ipv6/ip6_output.c:145
 [<ffffffff8355c993>] NF_HOOK_COND include/linux/netfilter.h:246 [inline]
 [<ffffffff8355c993>] ip6_output+0x1f3/0x6e0 net/ipv6/ip6_output.c:162
 [<ffffffff835dda36>] dst_output include/net/dst.h:507 [inline]
 [<ffffffff835dda36>] NF_HOOK_THRESH.constprop.41+0x286/0x450 include/linux/netfilter.h:232
 [<ffffffff835de249>] NF_HOOK include/linux/netfilter.h:255 [inline]
 [<ffffffff835de249>] mld_sendpack+0x649/0xbd0 net/ipv6/mcast.c:1660
 [<ffffffff835dff7a>] mld_send_cr net/ipv6/mcast.c:1956 [inline]
 [<ffffffff835dff7a>] mld_ifc_timer_expire+0x3ba/0x740 net/ipv6/mcast.c:2454
 [<ffffffff812969d3>] call_timer_fn+0x163/0x6e0 kernel/time/timer.c:1319
 [<ffffffff8129db37>] expire_timers kernel/time/timer.c:1359 [inline]
 [<ffffffff8129db37>] __run_timers kernel/time/timer.c:1658 [inline]
 [<ffffffff8129db37>] run_timer_softirq+0x1047/0x1590 kernel/time/timer.c:1684
 [<ffffffff839fb23b>] __do_softirq+0x20b/0x937 kernel/softirq.c:284
 [<ffffffff81149037>] invoke_softirq kernel/softirq.c:364 [inline]
 [<ffffffff81149037>] irq_exit+0x147/0x190 kernel/softirq.c:405
 [<ffffffff839f9e21>] exiting_irq arch/x86/include/asm/apic.h:659 [inline]
 [<ffffffff839f9e21>] smp_apic_timer_interrupt+0x81/0xa0 arch/x86/kernel/apic/apic.c:960
 [<ffffffff839f5fb0>] apic_timer_interrupt+0xa0/0xb0 arch/x86/entry/entry_64.S:648
 <EOI> [   24.295915]  [<ffffffff839f3286>] ? native_safe_halt+0x6/0x10 arch/x86/include/asm/irqflags.h:53
 [<ffffffff839f28c5>] arch_safe_halt arch/x86/include/asm/paravirt.h:104 [inline]
 [<ffffffff839f28c5>] default_idle+0x55/0x360 arch/x86/kernel/process.c:295
 [<ffffffff81069fa0>] arch_cpu_idle+0x10/0x20 arch/x86/kernel/process.c:286
 [<ffffffff839f36e5>] default_idle_call+0x45/0x60 kernel/sched/idle.c:97
 [<ffffffff81220e65>] cpuidle_idle_call kernel/sched/idle.c:155 [inline]
 [<ffffffff81220e65>] cpu_idle_loop kernel/sched/idle.c:248 [inline]
 [<ffffffff81220e65>] cpu_startup_entry+0x2b5/0x380 kernel/sched/idle.c:303
 [<ffffffff810ad1f3>] start_secondary+0x323/0x400 arch/x86/kernel/smpboot.c:254

Allocated by task 3845:
 save_stack_trace+0x16/0x20 arch/x86/kernel/stacktrace.c:57
 save_stack+0x43/0xd0 mm/kasan/kasan.c:505
 set_track mm/kasan/kasan.c:517 [inline]
 kasan_kmalloc+0xc7/0xe0 mm/kasan/kasan.c:609
 __kmalloc+0x11d/0x300 mm/slub.c:3741
 kmalloc_array include/linux/slab.h:582 [inline]
 kcalloc include/linux/slab.h:593 [inline]
 __ptr_ring_init_queue_alloc include/linux/ptr_ring.h:356 [inline]
 ptr_ring_resize_multiple include/linux/ptr_ring.h:445 [inline]
 skb_array_resize_multiple include/linux/skb_array.h:169 [inline]
 tun_queue_resize drivers/net/tun.c:2521 [inline]
 tun_device_event+0x3e3/0xa10 drivers/net/tun.c:2539
 notifier_call_chain+0xb4/0x1d0 kernel/notifier.c:93
 __raw_notifier_call_chain kernel/notifier.c:394 [inline]
 raw_notifier_call_chain+0x2d/0x40 kernel/notifier.c:401
 call_netdevice_notifiers_info+0x55/0x70 net/core/dev.c:1647
 call_netdevice_notifiers+0x70/0xa0 net/core/dev.c:1663
 do_setlink+0xc3b/0x30d0 net/core/rtnetlink.c:2048
 rtnl_group_changelink net/core/rtnetlink.c:2414 [inline]
 rtnl_newlink+0xbd0/0x1550 net/core/rtnetlink.c:2562
 rtnetlink_rcv_msg+0x49c/0x650 net/core/rtnetlink.c:4059
 netlink_rcv_skb+0x145/0x370 net/netlink/af_netlink.c:2356
 rtnetlink_rcv+0x2a/0x40 net/core/rtnetlink.c:4065
 netlink_unicast_kernel net/netlink/af_netlink.c:1278 [inline]
 netlink_unicast+0x4d8/0x6f0 net/netlink/af_netlink.c:1304
 netlink_sendmsg+0x78b/0xc10 net/netlink/af_netlink.c:1850
 sock_sendmsg_nosec net/socket.c:635 [inline]
 sock_sendmsg+0xcc/0x110 net/socket.c:645
 ___sys_sendmsg+0x6fc/0x840 net/socket.c:1969
 __sys_sendmsg+0xd9/0x190 net/socket.c:2003
 SYSC_sendmsg net/socket.c:2014 [inline]
 SyS_sendmsg+0x2d/0x50 net/socket.c:2010
 do_syscall_64+0x1a6/0x490 arch/x86/entry/common.c:282
 entry_SYSCALL_64_after_swapgs+0x5d/0xdb

Freed by task 2070:
 save_stack_trace+0x16/0x20 arch/x86/kernel/stacktrace.c:57
 save_stack+0x43/0xd0 mm/kasan/kasan.c:505
 set_track mm/kasan/kasan.c:517 [inline]
 kasan_slab_free+0x72/0xc0 mm/kasan/kasan.c:582
 slab_free_hook mm/slub.c:1355 [inline]
 slab_free_freelist_hook mm/slub.c:1377 [inline]
 slab_free mm/slub.c:2958 [inline]
 kfree+0xfb/0x310 mm/slub.c:3878
 kernfs_fop_write+0x181/0x460 fs/kernfs/file.c:330
 __vfs_write+0x115/0x580 fs/read_write.c:507
 vfs_write+0x187/0x530 fs/read_write.c:557
 SYSC_write fs/read_write.c:604 [inline]
 SyS_write+0xd9/0x1c0 fs/read_write.c:596
 do_syscall_64+0x1a6/0x490 arch/x86/entry/common.c:282
 entry_SYSCALL_64_after_swapgs+0x5d/0xdb

The buggy address belongs to the object at ffff8801cb159b70
 which belongs to the cache kmalloc-8 of size 8
The buggy address is located 0 bytes to the right of
 8-byte region [ffff8801cb159b70, ffff8801cb159b78)
The buggy address belongs to the page:
page:ffffea00072c5640 count:1 mapcount:0 mapping:          (null) index:0x0
flags: 0x8000000000000080(slab)
page dumped because: kasan: bad access detected

Memory state around the buggy address:
 ffff8801cb159a00: fc 00 fc fc 00 fc fc 00 fc fc 00 fc fc 00 fc fc
 ffff8801cb159a80: 00 fc fc 00 fc fc 00 fc fc fb fc fc fb fc fc 00
>ffff8801cb159b00: fc fc 00 fc fc 00 fc fc 00 fc fc 00 fc fc 00 fc
                                                                ^
 ffff8801cb159b80: fc fb fc fc fb fc fc 00 fc fc 00 fc fc 00 fc fc
 ffff8801cb159c00: 00 fc fc 00 fc fc 00 fc fc 00 fc fc 04 fc fc fb
==================================================================

Crashes (3386):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2018/05/06 09:37 https://android.googlesource.com/kernel/common android-4.9 63a812bb84e4 78b251cb .config console log report syz ci-android-49-kasan-gce
2019/12/04 06:43 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 ae13a849 .config console log report ci-android-49-kasan-gce
2019/12/04 05:19 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 ae13a849 .config console log report ci-android-49-kasan-gce
2019/12/04 04:09 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 ae13a849 .config console log report ci-android-49-kasan-gce
2019/12/04 02:37 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 ae13a849 .config console log report ci-android-49-kasan-gce
2019/12/04 01:50 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 ae13a849 .config console log report ci-android-49-kasan-gce
2019/12/04 00:40 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 ae13a849 .config console log report ci-android-49-kasan-gce
2019/12/03 23:31 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 ae13a849 .config console log report ci-android-49-kasan-gce
2019/12/03 21:25 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 ae13a849 .config console log report ci-android-49-kasan-gce
2019/12/03 19:19 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 ae13a849 .config console log report ci-android-49-kasan-gce
2019/12/03 15:49 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 ab342da3 .config console log report ci-android-49-kasan-gce
2019/12/03 14:24 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 ab342da3 .config console log report ci-android-49-kasan-gce
2019/12/03 12:48 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 ab342da3 .config console log report ci-android-49-kasan-gce
2019/12/03 11:19 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 ab342da3 .config console log report ci-android-49-kasan-gce
2019/12/03 10:14 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 ab342da3 .config console log report ci-android-49-kasan-gce
2019/12/03 10:01 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 ab342da3 .config console log report ci-android-49-kasan-gce
2019/12/03 08:32 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 ab342da3 .config console log report ci-android-49-kasan-gce
2019/12/03 07:21 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 ab342da3 .config console log report ci-android-49-kasan-gce
2019/12/03 06:18 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 ab342da3 .config console log report ci-android-49-kasan-gce
2019/12/03 05:16 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 ab342da3 .config console log report ci-android-49-kasan-gce
2019/12/03 03:24 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 ab342da3 .config console log report ci-android-49-kasan-gce
2019/12/02 22:59 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 ab342da3 .config console log report ci-android-49-kasan-gce
2019/12/02 17:57 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 f879db37 .config console log report ci-android-49-kasan-gce
2019/12/02 17:20 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 f879db37 .config console log report ci-android-49-kasan-gce
2019/12/02 14:20 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 f879db37 .config console log report ci-android-49-kasan-gce
2019/12/02 10:29 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 f879db37 .config console log report ci-android-49-kasan-gce
2019/12/02 09:03 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 f879db37 .config console log report ci-android-49-kasan-gce
2019/12/02 07:16 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 f879db37 .config console log report ci-android-49-kasan-gce
2019/12/02 05:00 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 f879db37 .config console log report ci-android-49-kasan-gce
2019/12/01 22:05 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 a76bf83f .config console log report ci-android-49-kasan-gce
2019/12/01 21:01 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 a76bf83f .config console log report ci-android-49-kasan-gce
2019/12/01 19:03 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 a76bf83f .config console log report ci-android-49-kasan-gce
2019/12/01 17:59 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 a76bf83f .config console log report ci-android-49-kasan-gce
2019/12/01 16:45 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 a76bf83f .config console log report ci-android-49-kasan-gce
2019/12/01 15:08 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 a76bf83f .config console log report ci-android-49-kasan-gce
2019/12/01 14:08 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 a76bf83f .config console log report ci-android-49-kasan-gce
2019/12/01 13:04 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 a76bf83f .config console log report ci-android-49-kasan-gce
2019/12/01 12:13 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 a76bf83f .config console log report ci-android-49-kasan-gce
2019/12/01 10:37 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 a76bf83f .config console log report ci-android-49-kasan-gce
2019/12/01 09:09 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 a76bf83f .config console log report ci-android-49-kasan-gce
2019/12/01 07:21 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 a76bf83f .config console log report ci-android-49-kasan-gce
2019/12/01 02:40 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 a76bf83f .config console log report ci-android-49-kasan-gce
2019/12/03 01:49 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 ab342da3 .config console log report ci-android-49-kasan-gce-386
2019/12/02 16:04 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 f879db37 .config console log report ci-android-49-kasan-gce-386
2019/12/01 20:45 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 a76bf83f .config console log report ci-android-49-kasan-gce-386
2019/12/01 05:33 https://android.googlesource.com/kernel/common android-4.9 8fe428403e30 a76bf83f .config console log report ci-android-49-kasan-gce-386
* Struck through repros no longer work on HEAD.