KASAN: use-after-free Read in ip_check_mc_rcu

16 views
Skip to first unread message

syzbot

unread,
Sep 6, 2019, 6:41:06 AM9/6/19
to syzkaller-a...@googlegroups.com
Hello,

syzbot found the following crash on:

HEAD commit: 38733bad ANDROID: sched: Disallow WALT with CFS bandwidth ..
git tree: android-4.14
console output: https://syzkaller.appspot.com/x/log.txt?x=13bd26fa600000
kernel config: https://syzkaller.appspot.com/x/.config?x=56a11d56cc83fc65
dashboard link: https://syzkaller.appspot.com/bug?extid=584965a61eca601c2e37
compiler: gcc (GCC) 9.0.0 20181231 (experimental)

Unfortunately, I don't have any reproducer for this crash yet.

IMPORTANT: if you fix the bug, please add the following tag to the commit:
Reported-by: syzbot+584965...@syzkaller.appspotmail.com

==================================================================
BUG: KASAN: use-after-free in ip_check_mc_rcu+0x4db/0x53a
net/ipv4/igmp.c:2697
Read of size 8 at addr ffff8881c92c0720 by task syz-executor.0/19893

CPU: 0 PID: 19893 Comm: syz-executor.0 Not tainted 4.14.141+ #0
Call Trace:
__dump_stack lib/dump_stack.c:17 [inline]
dump_stack+0xca/0x134 lib/dump_stack.c:53
print_address_description+0x60/0x226 mm/kasan/report.c:187
__kasan_report.cold+0x1a/0x41 mm/kasan/report.c:316
ip_check_mc_rcu+0x4db/0x53a net/ipv4/igmp.c:2697
__mkroute_output net/ipv4/route.c:2230 [inline]
ip_route_output_key_hash_rcu+0x18ca/0x20f0 net/ipv4/route.c:2511
ip_route_output_key_hash+0x1a2/0x2c0 net/ipv4/route.c:2340
__ip_route_output_key include/net/route.h:126 [inline]
ip_route_output_flow+0x22/0xb0 net/ipv4/route.c:2595
udp_sendmsg+0x13a0/0x1bb0 net/ipv4/udp.c:1025
inet_sendmsg+0x15b/0x520 net/ipv4/af_inet.c:760
sock_sendmsg_nosec net/socket.c:646 [inline]
sock_sendmsg+0xb7/0x100 net/socket.c:656
SYSC_sendto net/socket.c:1763 [inline]
SyS_sendto+0x1de/0x2f0 net/socket.c:1731
do_syscall_64+0x19b/0x520 arch/x86/entry/common.c:292
entry_SYSCALL_64_after_hwframe+0x42/0xb7
RIP: 0033:0x459879
RSP: 002b:00007ffa6b83ac78 EFLAGS: 00000246 ORIG_RAX: 000000000000002c
RAX: ffffffffffffffda RBX: 0000000000000006 RCX: 0000000000459879
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000006
RBP: 000000000075bf20 R08: 000000002057bff0 R09: 0000000000000010
R10: 0000000000000000 R11: 0000000000000246 R12: 00007ffa6b83b6d4
R13: 00000000004c783b R14: 00000000004dd0f0 R15: 00000000ffffffff

Allocated by task 19893:
save_stack mm/kasan/common.c:76 [inline]
set_track mm/kasan/common.c:85 [inline]
__kasan_kmalloc.part.0+0x53/0xc0 mm/kasan/common.c:495
kmalloc include/linux/slab.h:488 [inline]
kzalloc include/linux/slab.h:661 [inline]
ip_mc_add1_src net/ipv4/igmp.c:1960 [inline]
ip_mc_add_src+0xa79/0xd90 net/ipv4/igmp.c:2084
ip_mc_source+0x81b/0xd70 net/ipv4/igmp.c:2390
do_ip_setsockopt.isra.0+0xbc3/0x2d70 net/ipv4/ip_sockglue.c:995
ip_setsockopt+0x36/0x90 net/ipv4/ip_sockglue.c:1248
udp_setsockopt+0x45/0x80 net/ipv4/udp.c:2440
SYSC_setsockopt net/socket.c:1865 [inline]
SyS_setsockopt+0x12b/0x210 net/socket.c:1844
do_syscall_64+0x19b/0x520 arch/x86/entry/common.c:292
entry_SYSCALL_64_after_hwframe+0x42/0xb7
0xffffffffffffffff

Freed by task 19891:
save_stack mm/kasan/common.c:76 [inline]
set_track mm/kasan/common.c:85 [inline]
__kasan_slab_free+0x164/0x210 mm/kasan/common.c:457
slab_free_hook mm/slub.c:1407 [inline]
slab_free_freelist_hook mm/slub.c:1458 [inline]
slab_free mm/slub.c:3039 [inline]
kfree+0x108/0x3a0 mm/slub.c:3976
ip_mc_del1_src+0x58a/0x6d0 net/ipv4/igmp.c:1873
ip_mc_del_src+0x436/0x9c0 net/ipv4/igmp.c:1914
ip_mc_leave_src+0xeb/0x230 net/ipv4/igmp.c:2205
ip_mc_drop_socket+0x11a/0x240 net/ipv4/igmp.c:2659
inet_release+0x47/0x1c0 net/ipv4/af_inet.c:409
__sock_release+0xd2/0x2c0 net/socket.c:602
sock_close+0x15/0x20 net/socket.c:1139
__fput+0x25e/0x710 fs/file_table.c:210
task_work_run+0x125/0x1a0 kernel/task_work.c:113
tracehook_notify_resume include/linux/tracehook.h:191 [inline]
exit_to_usermode_loop+0x13b/0x160 arch/x86/entry/common.c:164
prepare_exit_to_usermode arch/x86/entry/common.c:199 [inline]
syscall_return_slowpath arch/x86/entry/common.c:270 [inline]
do_syscall_64+0x3a3/0x520 arch/x86/entry/common.c:297
entry_SYSCALL_64_after_hwframe+0x42/0xb7
0xffffffffffffffff

The buggy address belongs to the object at ffff8881c92c0720
which belongs to the cache kmalloc-64 of size 64
The buggy address is located 0 bytes inside of
64-byte region [ffff8881c92c0720, ffff8881c92c0760)
The buggy address belongs to the page:
page:ffffea000724b000 count:1 mapcount:0 mapping: (null) index:0x0
flags: 0x4000000000000200(slab)
raw: 4000000000000200 0000000000000000 0000000000000000 00000001802a002a
raw: dead000000000100 dead000000000200 ffff8881da803600 0000000000000000
page dumped because: kasan: bad access detected

Memory state around the buggy address:
ffff8881c92c0600: fb fb fb fb fb fb fb fb fc fc fc fc 00 00 00 00
ffff8881c92c0680: 00 00 00 00 fc fc fc fc 00 00 00 00 00 00 00 00
> ffff8881c92c0700: fc fc fc fc fb fb fb fb fb fb fb fb fc fc fc fc
^
ffff8881c92c0780: fb fb fb fb fb fb fb fb fc fc fc fc 00 00 00 00
ffff8881c92c0800: 00 00 00 00 fc fc fc fc fb fb fb fb fb fb fb fb
==================================================================


---
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 syzk...@googlegroups.com.

syzbot will keep track of this bug report. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.

syzbot

unread,
Jan 4, 2020, 4:41:04 AM1/4/20
to syzkaller-a...@googlegroups.com
Auto-closing this bug as obsolete.
Crashes did not happen for a while, no reproducer and no activity.
Reply all
Reply to author
Forward
0 new messages