syzbot


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

Status: closed as invalid on 2019/05/15 23:07
Subsystems: net
[Documentation on labels]
First crash: 1825d, last: 1825d
Similar bugs (6)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream KASAN: slab-out-of-bounds Read in tcp_write_timer_handler (3) net 10 1296d 1508d 0/26 auto-closed as invalid on 2020/12/30 02:27
upstream KASAN: slab-out-of-bounds Read in tcp_write_timer_handler (2) net 24 1684d 1730d 0/26 auto-closed as invalid on 2019/12/08 17:54
upstream KASAN: slab-out-of-bounds Read in tcp_write_timer_handler (4) net 1 1183d 1183d 0/26 auto-closed as invalid on 2021/04/22 06:03
linux-4.19 KASAN: slab-out-of-bounds Read in tcp_write_timer_handler 1 1312d 1312d 0/1 auto-closed as invalid on 2021/01/13 10:13
linux-4.19 KASAN: use-after-free Read in tcp_write_timer_handler (2) 12 570d 1084d 0/1 auto-obsoleted due to no activity on 2023/01/25 19:39
upstream KASAN: use-after-free Read in tcp_write_timer_handler (4) net 529 493d 1519d 0/26 closed as invalid on 2023/03/21 22:54

Sample crash report:
protocol 88fb is buggy, dev hsr_slave_0
protocol 88fb is buggy, dev hsr_slave_1
==================================================================
BUG: KASAN: slab-out-of-bounds in tcp_orphan_retries net/ipv4/tcp_timer.c:127 [inline]
BUG: KASAN: slab-out-of-bounds in tcp_probe_timer net/ipv4/tcp_timer.c:362 [inline]
BUG: KASAN: slab-out-of-bounds in tcp_write_timer_handler+0x889/0x8a0 net/ipv4/tcp_timer.c:591
Read of size 4 at addr ffff88806c1108e8 by task syz-executor.4/30813

CPU: 1 PID: 30813 Comm: syz-executor.4 Not tainted 5.1.0-rc5+ #148
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:187
 kasan_report.cold+0x1b/0x40 mm/kasan/report.c:317
 __asan_report_load4_noabort+0x14/0x20 mm/kasan/generic_report.c:131
 tcp_orphan_retries net/ipv4/tcp_timer.c:127 [inline]
 tcp_probe_timer net/ipv4/tcp_timer.c:362 [inline]
 tcp_write_timer_handler+0x889/0x8a0 net/ipv4/tcp_timer.c:591
 tcp_write_timer+0x10e/0x1d0 net/ipv4/tcp_timer.c:607
 call_timer_fn+0x190/0x720 kernel/time/timer.c:1325
 expire_timers kernel/time/timer.c:1362 [inline]
 __run_timers kernel/time/timer.c:1681 [inline]
 __run_timers kernel/time/timer.c:1649 [inline]
 run_timer_softirq+0x652/0x1700 kernel/time/timer.c:1694
 __do_softirq+0x266/0x95a 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+0x14a/0x570 arch/x86/kernel/apic/apic.c:1062
 apic_timer_interrupt+0xf/0x20 arch/x86/entry/entry_64.S:807
 </IRQ>
RIP: 0010:memset_erms+0x9/0x10 arch/x86/lib/memset_64.S:66
Code: c1 e9 03 40 0f b6 f6 48 b8 01 01 01 01 01 01 01 01 48 0f af c6 f3 48 ab 89 d1 f3 aa 4c 89 c8 c3 90 49 89 f9 40 88 f0 48 89 d1 <f3> aa 4c 89 c8 c3 90 49 89 fa 40 0f b6 ce 48 b8 01 01 01 01 01 01
RSP: 0018:ffff88806ff67478 EFLAGS: 00010206 ORIG_RAX: ffffffffffffff13
RAX: dffffc00000000ff RBX: 0000000000000200 RCX: 0000000000031940
RDX: 0000000000040000 RSI: 00000000000000ff RDI: ffffed100bc4e6c0
RBP: ffff88806ff67480 R08: 1ffff1100bc40000 R09: ffffed100bc40000
R10: 0000000000000000 R11: 0000000000000000 R12: ffffea0001788000
R13: 000000000005e200 R14: ffff88805e200000 R15: 000000000005e200
 free_pages_prepare mm/page_alloc.c:1135 [inline]
 __free_pages_ok+0x275/0xda0 mm/page_alloc.c:1353
 free_compound_page+0x6a/0x90 mm/page_alloc.c:611
 free_transhuge_page+0x230/0x310 mm/huge_memory.c:2796
 __put_compound_page+0x96/0xe0 mm/swap.c:95
 release_pages+0x5b2/0x1a50 mm/swap.c:762
 free_pages_and_swap_cache+0x2a0/0x3d0 mm/swap_state.c:295
 tlb_flush_mmu_free+0x4e/0x120 mm/mmu_gather.c:74
 zap_pte_range mm/memory.c:1158 [inline]
 zap_pmd_range mm/memory.c:1193 [inline]
 zap_pud_range mm/memory.c:1222 [inline]
 zap_p4d_range mm/memory.c:1243 [inline]
 unmap_page_range+0x180e/0x2330 mm/memory.c:1264
 unmap_single_vma+0x19d/0x300 mm/memory.c:1309
 unmap_vmas+0x115/0x250 mm/memory.c:1340
 exit_mmap+0x2c2/0x530 mm/mmap.c:3138
 __mmput kernel/fork.c:1046 [inline]
 mmput+0x15f/0x4c0 kernel/fork.c:1067
 exit_mm kernel/exit.c:546 [inline]
 do_exit+0x816/0x2fa0 kernel/exit.c:863
 do_group_exit+0x135/0x370 kernel/exit.c:980
 get_signal+0x399/0x1d50 kernel/signal.c:2577
 do_signal+0x87/0x1940 arch/x86/kernel/signal.c:816
 exit_to_usermode_loop+0x244/0x2c0 arch/x86/entry/common.c:162
 prepare_exit_to_usermode arch/x86/entry/common.c:197 [inline]
 syscall_return_slowpath arch/x86/entry/common.c:268 [inline]
 do_syscall_64+0x52d/0x610 arch/x86/entry/common.c:293
 entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x458c29
Code: ad b8 fb ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 0f 83 7b b8 fb ff c3 66 2e 0f 1f 84 00 00 00 00
RSP: 002b:00007f7111585c78 EFLAGS: 00000246 ORIG_RAX: 0000000000000133
RAX: 0000000000000211 RBX: 0000000000000004 RCX: 0000000000458c29
RDX: 0400000000000211 RSI: 0000000020000440 RDI: 0000000000000003
RBP: 000000000073bf00 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000810 R11: 0000000000000246 R12: 00007f71115866d4
R13: 00000000004c5e19 R14: 00000000004da5e0 R15: 00000000ffffffff

Allocated by task 30667:
 save_stack+0x45/0xd0 mm/kasan/common.c:75
 set_track mm/kasan/common.c:87 [inline]
 __kasan_kmalloc mm/kasan/common.c:497 [inline]
 __kasan_kmalloc.constprop.0+0xcf/0xe0 mm/kasan/common.c:470
 kasan_slab_alloc+0xf/0x20 mm/kasan/common.c:505
 slab_post_alloc_hook mm/slab.h:437 [inline]
 slab_alloc mm/slab.c:3394 [inline]
 kmem_cache_alloc+0x11a/0x6f0 mm/slab.c:3556
 getname_flags fs/namei.c:138 [inline]
 getname_flags+0xd6/0x5b0 fs/namei.c:128
 getname+0x1a/0x20 fs/namei.c:209
 do_sys_open+0x2c9/0x5d0 fs/open.c:1063
 __do_sys_open fs/open.c:1087 [inline]
 __se_sys_open fs/open.c:1082 [inline]
 __x64_sys_open+0x7e/0xc0 fs/open.c:1082
 do_syscall_64+0x103/0x610 arch/x86/entry/common.c:290
 entry_SYSCALL_64_after_hwframe+0x49/0xbe

Freed by task 30667:
 save_stack+0x45/0xd0 mm/kasan/common.c:75
 set_track mm/kasan/common.c:87 [inline]
 __kasan_slab_free+0x102/0x150 mm/kasan/common.c:459
 kasan_slab_free+0xe/0x10 mm/kasan/common.c:467
 __cache_free mm/slab.c:3500 [inline]
 kmem_cache_free+0x86/0x260 mm/slab.c:3766
 putname+0xef/0x130 fs/namei.c:259
 do_sys_open+0x318/0x5d0 fs/open.c:1078
 __do_sys_open fs/open.c:1087 [inline]
 __se_sys_open fs/open.c:1082 [inline]
 __x64_sys_open+0x7e/0xc0 fs/open.c:1082
 do_syscall_64+0x103/0x610 arch/x86/entry/common.c:290
 entry_SYSCALL_64_after_hwframe+0x49/0xbe

The buggy address belongs to the object at ffff88806c110a40
 which belongs to the cache names_cache of size 4096
The buggy address is located 344 bytes to the left of
 4096-byte region [ffff88806c110a40, ffff88806c111a40)
The buggy address belongs to the page:
page:ffffea0001b04400 count:1 mapcount:0 mapping:ffff88812c2d8dc0 index:0x0 compound_mapcount: 0
flags: 0x1fffc0000010200(slab|head)
raw: 01fffc0000010200 ffffea0002929d08 ffffea000242a308 ffff88812c2d8dc0
raw: 0000000000000000 ffff88806c110a40 0000000100000001 0000000000000000
page dumped because: kasan: bad access detected

Memory state around the buggy address:
 ffff88806c110780: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
 ffff88806c110800: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
>ffff88806c110880: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
                                                          ^
 ffff88806c110900: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
 ffff88806c110980: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
==================================================================

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2019/04/21 13:32 net-next-old 4ef6cbe80d71 b0e8efcb .config console log report ci-upstream-net-kasan-gce
* Struck through repros no longer work on HEAD.