syzbot


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

Status: fixed on 2020/02/10 15:38
Reported-by: syzbot+7f047e57755b13ce70c2@syzkaller.appspotmail.com
Fix commit: 4a953272f2d2 macvlan: do not assume mac_header is set in macvlan_broadcast()
First crash: 1565d, last: 1560d
Fix bisection: fixed by (bisect log) :
commit 4a953272f2d2db63bba97137b64b3f1770634e00
Author: Eric Dumazet <edumazet@google.com>
Date: Mon Jan 6 20:30:48 2020 +0000

  macvlan: do not assume mac_header is set in macvlan_broadcast()

  
Similar bugs (2)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
linux-4.19 KASAN: slab-out-of-bounds Read in macvlan_broadcast C done 10 1560d 1565d 1/1 fixed on 2020/02/10 15:38
upstream KASAN: slab-out-of-bounds Read in macvlan_broadcast net C done 10 1563d 1565d 15/26 fixed on 2020/02/18 14:31

Sample crash report:
IPv6: ADDRCONF(NETDEV_UP): macvlan0: link is not ready
IPv6: ADDRCONF(NETDEV_UP): macvlan1: link is not ready
protocol 88fb is buggy, dev hsr_slave_0
protocol 88fb is buggy, dev hsr_slave_1
==================================================================
BUG: KASAN: slab-out-of-bounds in __get_unaligned_cpu32 include/linux/unaligned/packed_struct.h:19 [inline]
BUG: KASAN: slab-out-of-bounds in mc_hash drivers/net/macvlan.c:255 [inline]
BUG: KASAN: slab-out-of-bounds in macvlan_broadcast+0x4b9/0x5c0 drivers/net/macvlan.c:281
Read of size 4 at addr ffff88808b535d41 by task syz-executor815/7096

CPU: 1 PID: 7096 Comm: syz-executor815 Not tainted 4.14.162-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Call Trace:
 __dump_stack lib/dump_stack.c:17 [inline]
 dump_stack+0x142/0x197 lib/dump_stack.c:58
 print_address_description.cold+0x7c/0x1dc mm/kasan/report.c:252
 kasan_report_error mm/kasan/report.c:351 [inline]
 kasan_report mm/kasan/report.c:409 [inline]
 kasan_report.cold+0xa9/0x2af mm/kasan/report.c:393
 __asan_report_load_n_noabort+0xf/0x20 mm/kasan/report.c:440
 __get_unaligned_cpu32 include/linux/unaligned/packed_struct.h:19 [inline]
 mc_hash drivers/net/macvlan.c:255 [inline]
 macvlan_broadcast+0x4b9/0x5c0 drivers/net/macvlan.c:281
 macvlan_queue_xmit drivers/net/macvlan.c:522 [inline]
 macvlan_start_xmit+0x56b/0x72d drivers/net/macvlan.c:565
 __netdev_start_xmit include/linux/netdevice.h:4038 [inline]
 netdev_start_xmit include/linux/netdevice.h:4047 [inline]
 packet_direct_xmit+0x431/0x640 net/packet/af_packet.c:269
 packet_snd net/packet/af_packet.c:2994 [inline]
 packet_sendmsg+0x1dd4/0x5a60 net/packet/af_packet.c:3019
 sock_sendmsg_nosec net/socket.c:646 [inline]
 sock_sendmsg+0xce/0x110 net/socket.c:656
 SYSC_sendto+0x206/0x310 net/socket.c:1763
 SyS_sendto+0x40/0x50 net/socket.c:1731
 do_syscall_64+0x1e8/0x640 arch/x86/entry/common.c:292
 entry_SYSCALL_64_after_hwframe+0x42/0xb7
RIP: 0033:0x4423d9
RSP: 002b:00007ffc4948a4d8 EFLAGS: 00000246 ORIG_RAX: 000000000000002c
RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 00000000004423d9
RDX: 000000000000000e RSI: 0000000020000080 RDI: 0000000000000003
RBP: 00007ffc4948a500 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 0000000000403910 R14: 0000000000000000 R15: 0000000000000000

Allocated by task 4144:
 save_stack_trace+0x16/0x20 arch/x86/kernel/stacktrace.c:59
 save_stack+0x45/0xd0 mm/kasan/kasan.c:447
 set_track mm/kasan/kasan.c:459 [inline]
 kasan_kmalloc mm/kasan/kasan.c:551 [inline]
 kasan_kmalloc+0xce/0xf0 mm/kasan/kasan.c:529
 kasan_slab_alloc+0xf/0x20 mm/kasan/kasan.c:489
 kmem_cache_alloc+0x12e/0x780 mm/slab.c:3552
 getname_flags fs/namei.c:138 [inline]
 getname_flags+0xcb/0x580 fs/namei.c:128
 getname+0x1a/0x20 fs/namei.c:209
 do_sys_open+0x1e7/0x430 fs/open.c:1078
 SYSC_open fs/open.c:1102 [inline]
 SyS_open+0x2d/0x40 fs/open.c:1097
 do_syscall_64+0x1e8/0x640 arch/x86/entry/common.c:292
 entry_SYSCALL_64_after_hwframe+0x42/0xb7

Freed by task 4144:
 save_stack_trace+0x16/0x20 arch/x86/kernel/stacktrace.c:59
 save_stack+0x45/0xd0 mm/kasan/kasan.c:447
 set_track mm/kasan/kasan.c:459 [inline]
 kasan_slab_free+0x75/0xc0 mm/kasan/kasan.c:524
 __cache_free mm/slab.c:3496 [inline]
 kmem_cache_free+0x83/0x2b0 mm/slab.c:3758
 putname+0xdb/0x120 fs/namei.c:259
 do_sys_open+0x21c/0x430 fs/open.c:1093
 SYSC_open fs/open.c:1102 [inline]
 SyS_open+0x2d/0x40 fs/open.c:1097
 do_syscall_64+0x1e8/0x640 arch/x86/entry/common.c:292
 entry_SYSCALL_64_after_hwframe+0x42/0xb7

The buggy address belongs to the object at ffff88808b5349c0
 which belongs to the cache names_cache of size 4096
The buggy address is located 897 bytes to the right of
 4096-byte region [ffff88808b5349c0, ffff88808b5359c0)
The buggy address belongs to the page:
page:ffffea00022d4d00 count:1 mapcount:0 mapping:ffff88808b5349c0 index:0x0 compound_mapcount: 0
flags: 0xfffe0000008100(slab|head)
raw: 00fffe0000008100 ffff88808b5349c0 0000000000000000 0000000100000001
raw: ffffea000209cfa0 ffffea00022d20a0 ffff8880aa9e9cc0 0000000000000000
page dumped because: kasan: bad access detected

Memory state around the buggy address:
 ffff88808b535c00: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
 ffff88808b535c80: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
>ffff88808b535d00: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
                                           ^
 ffff88808b535d80: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
 ffff88808b535e00: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
==================================================================

Crashes (6):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2020/01/08 12:29 linux-4.14.y 84f5ad468100 ddc3e859 .config console log report syz C ci2-linux-4-14
2020/01/08 01:28 linux-4.14.y 84f5ad468100 6738e0b3 .config console log report syz C ci2-linux-4-14
2020/01/07 20:00 linux-4.14.y 84f5ad468100 1bcd407e .config console log report syz C ci2-linux-4-14
2020/01/07 08:19 linux-4.14.y 84f5ad468100 53430d97 .config console log report syz C ci2-linux-4-14
2020/01/06 14:13 linux-4.14.y 84f5ad468100 438e1227 .config console log report syz C ci2-linux-4-14
2020/01/11 08:33 linux-4.14.y b0cdffaa546e 4c04afaa .config console log report ci2-linux-4-14
* Struck through repros no longer work on HEAD.