syzbot


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

Status: upstream: reported C repro on 2020/07/21 03:52
Reported-by: syzbot+87b2b4484df1d40e7ece@syzkaller.appspotmail.com
First crash: 803d, last: 800d

Cause bisection: failed (bisect log)
Patch testing requests:
Created Duration User Patch Repo Result
2022/09/19 04:29 10m linux-next report log
2022/09/19 02:29 10m linux-next report log
2022/09/18 23:29 10m linux-next report log
2020/07/25 11:29 16m bkkarthik@pesu.pes.edu patch https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master OK

Sample crash report:
==================================================================
BUG: KASAN: slab-out-of-bounds in __xfrm6_tunnel_alloc_spi net/ipv6/xfrm6_tunnel.c:124 [inline]
BUG: KASAN: slab-out-of-bounds in xfrm6_tunnel_alloc_spi+0x779/0x8a0 net/ipv6/xfrm6_tunnel.c:174
Read of size 4 at addr ffff88809a3fe000 by task syz-executor597/6834
CPU: 1 PID: 6834 Comm: syz-executor597 Not tainted 5.8.0-rc5-next-20200716-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Call Trace:
 __dump_stack lib/dump_stack.c:77 [inline]
 dump_stack+0x18f/0x20d lib/dump_stack.c:118
 print_address_description.constprop.0.cold+0xae/0x497 mm/kasan/report.c:383
 __kasan_report mm/kasan/report.c:513 [inline]
 kasan_report.cold+0x1f/0x37 mm/kasan/report.c:530
 __xfrm6_tunnel_alloc_spi net/ipv6/xfrm6_tunnel.c:124 [inline]
 xfrm6_tunnel_alloc_spi+0x779/0x8a0 net/ipv6/xfrm6_tunnel.c:174
 ipcomp6_tunnel_create net/ipv6/ipcomp6.c:84 [inline]
 ipcomp6_tunnel_attach net/ipv6/ipcomp6.c:124 [inline]
 ipcomp6_init_state net/ipv6/ipcomp6.c:159 [inline]
 ipcomp6_init_state+0x2af/0x700 net/ipv6/ipcomp6.c:139
 __xfrm_init_state+0x9a6/0x14b0 net/xfrm/xfrm_state.c:2498
 xfrm_init_state+0x1a/0x70 net/xfrm/xfrm_state.c:2525
 pfkey_msg2xfrm_state net/key/af_key.c:1291 [inline]
 pfkey_add+0x1a10/0x2b70 net/key/af_key.c:1508
 pfkey_process+0x66d/0x7a0 net/key/af_key.c:2834
 pfkey_sendmsg+0x42d/0x800 net/key/af_key.c:3673
 sock_sendmsg_nosec net/socket.c:651 [inline]
 sock_sendmsg+0xcf/0x120 net/socket.c:671
 ____sys_sendmsg+0x331/0x810 net/socket.c:2362
 ___sys_sendmsg+0xf3/0x170 net/socket.c:2416
 __sys_sendmmsg+0x195/0x480 net/socket.c:2506
 __do_sys_sendmmsg net/socket.c:2535 [inline]
 __se_sys_sendmmsg net/socket.c:2532 [inline]
 __x64_sys_sendmmsg+0x99/0x100 net/socket.c:2532
 do_syscall_64+0x60/0xe0 arch/x86/entry/common.c:384
 entry_SYSCALL_64_after_hwframe+0x44/0xa9
RIP: 0033:0x440409
Code: Bad RIP value.
RSP: 002b:00007ffea3e50018 EFLAGS: 00000246 ORIG_RAX: 0000000000000133
RAX: ffffffffffffffda RBX: 00000000004002c8 RCX: 0000000000440409
RDX: 0400000000000282 RSI: 0000000020000180 RDI: 0000000000000003
RBP: 00000000006ca018 R08: 00000000004002c8 R09: 00000000004002c8
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000401c10
R13: 0000000000401ca0 R14: 0000000000000000 R15: 0000000000000000
Allocated by task 6731:
 kasan_save_stack+0x1b/0x40 mm/kasan/common.c:48
 kasan_set_track mm/kasan/common.c:56 [inline]
 __kasan_kmalloc.constprop.0+0xbf/0xd0 mm/kasan/common.c:461
 slab_post_alloc_hook mm/slab.h:535 [inline]
 slab_alloc mm/slab.c:3312 [inline]
 kmem_cache_alloc+0x138/0x3a0 mm/slab.c:3482
 dup_fd+0x89/0xc90 fs/file.c:293
 copy_files kernel/fork.c:1459 [inline]
 copy_process+0x1dd0/0x6b70 kernel/fork.c:2064
 _do_fork+0xe8/0xb10 kernel/fork.c:2434
 __do_sys_clone+0xc8/0x110 kernel/fork.c:2551
 do_syscall_64+0x60/0xe0 arch/x86/entry/common.c:384
 entry_SYSCALL_64_after_hwframe+0x44/0xa9
The buggy address belongs to the object at ffff88809a3fe0c0
 which belongs to the cache files_cache of size 832
The buggy address is located 192 bytes to the left of
 832-byte region [ffff88809a3fe0c0, ffff88809a3fe400)
The buggy address belongs to the page:
page:000000007671797d refcount:1 mapcount:0 mapping:0000000000000000 index:0xffff88809a3fec00 pfn:0x9a3fe
flags: 0xfffe0000000200(slab)
raw: 00fffe0000000200 ffffea00027a5248 ffffea0002a3b648 ffff88821bc47600
raw: ffff88809a3fec00 ffff88809a3fe0c0 0000000100000003 0000000000000000
page dumped because: kasan: bad access detected
Memory state around the buggy address:
 ffff88809a3fdf00: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
 ffff88809a3fdf80: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
>ffff88809a3fe000: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
                   ^
 ffff88809a3fe080: fc fc fc fc fc fc fc fc 00 00 00 00 00 00 00 00
 ffff88809a3fe100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
==================================================================

Crashes (5):
Manager Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Title
ci-upstream-linux-next-kasan-gce-root 2020/07/20 08:15 linux-next 4c43049f19a2 9c812472 .config log report syz C
ci-upstream-linux-next-kasan-gce-root 2020/07/20 07:56 linux-next 4c43049f19a2 9c812472 .config log report syz C
ci-upstream-linux-next-kasan-gce-root 2020/07/17 03:42 linux-next 4c43049f19a2 54b3c45e .config log report syz C
ci-upstream-linux-next-kasan-gce-root 2020/07/20 07:39 linux-next 4c43049f19a2 9c812472 .config log report
ci-upstream-linux-next-kasan-gce-root 2020/07/20 07:30 linux-next 4c43049f19a2 9c812472 .config log report
* Struck through repros no longer work on HEAD.