KASAN: stack-out-of-bounds Read in tlb_flush_mmu_free

12 views
Skip to first unread message

syzbot

unread,
Jul 9, 2018, 11:29:02 PM7/9/18
to syzkaller-upst...@googlegroups.com
Hello,

syzbot found the following crash on:

HEAD commit: d90c936fb318 Merge branch 'bpf-nfp-mul-div-support'
git tree: bpf-next
console output: https://syzkaller.appspot.com/x/log.txt?x=112179b2400000
kernel config: https://syzkaller.appspot.com/x/.config?x=a501a01deaf0fe9
dashboard link: https://syzkaller.appspot.com/bug?extid=97e27b3573081d2b07bf
compiler: gcc (GCC) 8.0.1 20180413 (experimental)
CC: [ak...@linux-foundation.org dan.j.w...@intel.com
jgl...@redhat.com kirill....@linux.intel.com
ldu...@linux.vnet.ibm.com linux-...@vger.kernel.org linu...@kvack.org
mho...@suse.com min...@kernel.org ross.z...@linux.intel.com
wi...@infradead.org ying....@intel.com]

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+97e27b...@syzkaller.appspotmail.com

==================================================================
BUG: KASAN: stack-out-of-bounds in tlb_flush_mmu_free+0x13f/0x160
mm/memory.c:258
------------[ cut here ]------------
Read of size 4 at addr ffff8801cf1b6008 by task syz-executor1/427
do_IRQ(): syz-executor3 has overflown the kernel stack
(cur:ffff8801cf230000,sp:ffff8801ce29e850,irq stk
top-bottom:ffff8801dae00080-ffff8801dae08000,exception stk
top-bottom:fffffe0000007080-fffffe0000011000,ip:lock_acquire+0x25f/0x540)

WARNING: CPU: 0 PID: 422 at arch/x86/kernel/irq_64.c:63
stack_overflow_check arch/x86/kernel/irq_64.c:60 [inline]
WARNING: CPU: 0 PID: 422 at arch/x86/kernel/irq_64.c:63
handle_irq+0x1fb/0x2e7 arch/x86/kernel/irq_64.c:72
CPU: 1 PID: 427 Comm: syz-executor1 Not tainted 4.18.0-rc3+ #48
Kernel panic - not syncing: panic_on_warn set ...

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+0x1c9/0x2b4 lib/dump_stack.c:113
print_address_description+0x6c/0x20b mm/kasan/report.c:256
kasan_report_error mm/kasan/report.c:354 [inline]
kasan_report.cold.7+0x242/0x2fe mm/kasan/report.c:412
__asan_report_load4_noabort+0x14/0x20 mm/kasan/report.c:432
tlb_flush_mmu_free+0x13f/0x160 mm/memory.c:258
zap_pte_range mm/memory.c:1400 [inline]
zap_pmd_range mm/memory.c:1437 [inline]
zap_pud_range mm/memory.c:1466 [inline]
zap_p4d_range mm/memory.c:1487 [inline]
unmap_page_range+0x1a45/0x2220 mm/memory.c:1508
unmap_single_vma+0x1a0/0x310 mm/memory.c:1553
unmap_vmas+0x120/0x1f0 mm/memory.c:1583
exit_mmap+0x2c2/0x5b0 mm/mmap.c:3105
__mmput kernel/fork.c:970 [inline]
mmput+0x265/0x620 kernel/fork.c:991
exit_mm kernel/exit.c:544 [inline]
do_exit+0xea9/0x2750 kernel/exit.c:852
do_group_exit+0x177/0x440 kernel/exit.c:968
get_signal+0x88e/0x1970 kernel/signal.c:2468
do_signal+0x9c/0x21c0 arch/x86/kernel/signal.c:816
exit_to_usermode_loop+0x2e0/0x370 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+0x6be/0x820 arch/x86/entry/common.c:293
entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x455e29
Code: 1d ba 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 eb b9 fb ff c3 66 2e 0f 1f 84 00 00 00 00
RSP: 002b:00007f0001f39ce8 EFLAGS: 00000246 ORIG_RAX: 00000000000000ca
RAX: fffffffffffffe00 RBX: 000000000072bec0 RCX: 0000000000455e29
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 000000000072bec0
RBP: 000000000072bec0 R08: 0000000000000000 R09: 000000000072bea0
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 00007fff809b56cf R14: 00007f0001f3a9c0 R15: 0000000000000000

CPU: 0 PID: 422 Comm: syz-executor3 Not tainted 4.18.0-rc3+ #48
The buggy address belongs to the page:
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
page:ffffea00073c6d80 count:1 mapcount:0 mapping:0000000000000000 index:0x0
Call Trace:
<IRQ>
flags: 0x2fffc0000000000()
__dump_stack lib/dump_stack.c:77 [inline]
dump_stack+0x1c9/0x2b4 lib/dump_stack.c:113
raw: 02fffc0000000000 dead000000000100 dead000000000200 0000000000000000
raw: 0000000000000000 0000000000000000 00000001ffffffff 0000000000000000
panic+0x238/0x4e7 kernel/panic.c:184
page dumped because: kasan: bad access detected

Memory state around the buggy address:
ffff8801cf1b5f00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ffff8801cf1b5f80: 00 00 00 00 f1 f1 f1 f1 00 f2 f2 f2 f2 f2 f2 f2
__warn.cold.8+0x163/0x1ba kernel/panic.c:536
> ffff8801cf1b6000: 00 f2 f2 f2 f2 f2 f2 f2 00 f2 f2 f2 f2 f2 f2 f2
^
report_bug+0x252/0x2d0 lib/bug.c:186
ffff8801cf1b6080: f8 f2 f2 f2 f2 f2 f2 f2 00 f2 f2 f2 00 00 00 00
fixup_bug arch/x86/kernel/traps.c:178 [inline]
do_error_trap+0x1fc/0x4d0 arch/x86/kernel/traps.c:296
ffff8801cf1b6100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
==================================================================
BUG: unable to handle kernel paging request at ffff8801b0947a80
PGD b4e1067 P4D b4e1067
PUD 1b53a0063
do_invalid_op+0x1b/0x20 arch/x86/kernel/traps.c:316
PMD 1cef9c063
invalid_op+0x14/0x20 arch/x86/entry/entry_64.S:992
PTE 0
RIP: 0010:stack_overflow_check arch/x86/kernel/irq_64.c:60 [inline]
RIP: 0010:handle_irq+0x1fb/0x2e7 arch/x86/kernel/irq_64.c:72
Code:
Oops: 0000 [#1] SMP KASAN
00 00
CPU: 1 PID: 427 Comm: syz-executor1 Tainted: G B 4.18.0-rc3+
#48
ff
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
b6
RIP: 0010:__wake_up_common+0x119/0x740 kernel/sched/wait.c:83
80 00
Code:
00
e8
00
18
48
49
c7
8d
c7
78
40
18
bc
49
e4
39
87
fc
41
0f
54
84
41
00 03
55
00
65
00
48
48
8b
b8
04
00
25
00
40
00
ee
00 00
01
fc
00
ff
48
df
05
48
68
89
06
fa 48
00 00
c1
48
ea
89
03
c6
80
e8
3c
85
02
b3
00
1c
0f 85
00
b6
<0f>
05
0b
00
48
00
83
<49>
c4
8b
18
40
e9
18
3f
31
ff
db
ff
44
ff
89
48
ad
89
10
75
ff
e0
ff
e8
ff
a1
49
69
bf
8f
00
00
00
48
00
8b
00
00
RSP: 0018:ffff8801dae07f58 EFLAGS: 00010082
fc
ff
RAX: 0000000000000000 RBX: ffff8801ce236900 RCX: 0000000000000000
RDX: 0000000000010000 RSI: ffffffff81631851 RDI: 0000000000000001
RSP: 0018:ffff8801daf07750 EFLAGS: 00010046
RBP: ffff8801dae07fb0 R08: ffff88019abae400 R09: ffffed003b5c3ec2
R10: ffffed003b5c3ec2 R11: ffff8801dae1f617 R12: fffffe0000011000
R13: fffffe0000007080 R14: 000000000000002a R15: 0000000000000000
RAX: dffffc0000000000 RBX: ffffffff88f89080 RCX: 0000000000000000
RDX: 1ffff10036128f50 RSI: 0000000000000001 RDI: ffff8801b0947a80
RBP: ffff8801daf07858 R08: ffff8801b0947a68 R09: ffff8801daf078a8
R10: fffffbfff11f1210 R11: ffffffff88f89083 R12: ffffffff88f890b8
R13: 0000000000000001 R14: ffff8801daf07948 R15: 0000000000000082
FS: 00007f0001f3a700(0000) GS:ffff8801daf00000(0000) knlGS:0000000000000000
do_IRQ+0x78/0x190 arch/x86/kernel/irq.c:245
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
common_interrupt+0xf/0xf arch/x86/entry/entry_64.S:642
CR2: ffff8801b0947a80 CR3: 000000019fd8f000 CR4: 00000000001406e0
</IRQ>
DR0: 0000000020000000 DR1: 0000000020000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000600
Call Trace:
<IRQ>
__wake_up_common_lock+0x1c2/0x330 kernel/sched/wait.c:119
__wake_up+0xe/0x10 kernel/sched/wait.c:143
wake_up_klogd_work_func+0x9a/0xb0 kernel/printk/printk.c:2863
irq_work_run_list+0x1c0/0x290 kernel/irq_work.c:155
irq_work_tick+0x15d/0x1e0 kernel/irq_work.c:181
update_process_times+0x68/0x70 kernel/time/timer.c:1639
tick_sched_handle+0x9f/0x180 kernel/time/tick-sched.c:164
tick_sched_timer+0x45/0x130 kernel/time/tick-sched.c:1274
__run_hrtimer kernel/time/hrtimer.c:1398 [inline]
__hrtimer_run_queues+0x3eb/0x10c0 kernel/time/hrtimer.c:1460
hrtimer_interrupt+0x2f3/0x750 kernel/time/hrtimer.c:1518
local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1025 [inline]
smp_apic_timer_interrupt+0x165/0x730 arch/x86/kernel/apic/apic.c:1050
apic_timer_interrupt+0xf/0x20 arch/x86/entry/entry_64.S:863
</IRQ>
RIP: 0010:arch_local_irq_restore arch/x86/include/asm/paravirt.h:783
[inline]
RIP: 0010:__raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:160
[inline]
RIP: 0010:_raw_spin_unlock_irqrestore+0xa1/0xc0
kernel/locking/spinlock.c:184
Code: 68 b0 f1 88 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 80 3c
02 00 75 21 48 83 3d 6e bb 5b 01 00 74 0e 48 89 df 57 9d <0f> 1f 44 00 00
eb bb 0f 0b 0f 0b e8 cf ef 23 fa eb 97 e8 c8 ef 23
RSP: 0018:ffff8801d3d86af0 EFLAGS: 00000282 ORIG_RAX: ffffffffffffff13
RAX: dffffc0000000000 RBX: 0000000000000282 RCX: ffffffff81601b77
RDX: 1ffffffff11e360d RSI: 0000000000000004 RDI: 0000000000000282
RBP: ffff8801d3d86b00 R08: fffffbfff1205391 R09: fffffbfff1205390
R10: fffffbfff1205390 R11: ffffffff89029c83 R12: ffffffff89029c80
R13: 0000000000000000 R14: ffffffff81aa7e7f R15: ffff8801cf1b6008
spin_unlock_irqrestore include/linux/spinlock.h:365 [inline]
kasan_end_report+0x32/0x4f mm/kasan/report.c:178
kasan_report_error mm/kasan/report.c:359 [inline]
kasan_report.cold.7+0x76/0x2fe mm/kasan/report.c:412
__asan_report_load4_noabort+0x14/0x20 mm/kasan/report.c:432
tlb_flush_mmu_free+0x13f/0x160 mm/memory.c:258
zap_pte_range mm/memory.c:1400 [inline]
zap_pmd_range mm/memory.c:1437 [inline]
zap_pud_range mm/memory.c:1466 [inline]
zap_p4d_range mm/memory.c:1487 [inline]
unmap_page_range+0x1a45/0x2220 mm/memory.c:1508
unmap_single_vma+0x1a0/0x310 mm/memory.c:1553
unmap_vmas+0x120/0x1f0 mm/memory.c:1583
exit_mmap+0x2c2/0x5b0 mm/mmap.c:3105
__mmput kernel/fork.c:970 [inline]
mmput+0x265/0x620 kernel/fork.c:991
exit_mm kernel/exit.c:544 [inline]
do_exit+0xea9/0x2750 kernel/exit.c:852
do_group_exit+0x177/0x440 kernel/exit.c:968
get_signal+0x88e/0x1970 kernel/signal.c:2468
do_signal+0x9c/0x21c0 arch/x86/kernel/signal.c:816
exit_to_usermode_loop+0x2e0/0x370 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+0x6be/0x820 arch/x86/entry/common.c:293
entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x455e29
Code: 1d ba 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 eb b9 fb ff c3 66 2e 0f 1f 84 00 00 00 00
RSP: 002b:00007f0001f39ce8 EFLAGS: 00000246 ORIG_RAX: 00000000000000ca
RAX: fffffffffffffe00 RBX: 000000000072bec0 RCX: 0000000000455e29
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 000000000072bec0
RBP: 000000000072bec0 R08: 0000000000000000 R09: 000000000072bea0
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 00007fff809b56cf R14: 00007f0001f3a9c0 R15: 0000000000000000
Modules linked in:
Dumping ftrace buffer:
(ftrace buffer empty)
CR2: ffff8801b0947a80
---[ end trace 9d4573c76f226894 ]---
RIP: 0010:__wake_up_common+0x119/0x740 kernel/sched/wait.c:83
Code: e8 18 49 8d 78 18 49 39 fc 0f 84 00 03 00 00 48 b8 00 00 00 00 00 fc
ff df 48 89 fa 48 c1 ea 03 80 3c 02 00 0f 85 b6 05 00 00 <49> 8b 40 18 31
db 44 89 ad 10 ff ff ff 49 bf 00 00 00 00 00 fc ff
RSP: 0018:ffff8801daf07750 EFLAGS: 00010046
RAX: dffffc0000000000 RBX: ffffffff88f89080 RCX: 0000000000000000
RDX: 1ffff10036128f50 RSI: 0000000000000001 RDI: ffff8801b0947a80
RBP: ffff8801daf07858 R08: ffff8801b0947a68 R09: ffff8801daf078a8
R10: fffffbfff11f1210 R11: ffffffff88f89083 R12: ffffffff88f890b8
R13: 0000000000000001 R14: ffff8801daf07948 R15: 0000000000000082
FS: 00007f0001f3a700(0000) GS:ffff8801daf00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: ffff8801b0947a80 CR3: 000000019fd8f000 CR4: 00000000001406e0
DR0: 0000000020000000 DR1: 0000000020000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000600
Shutting down cpus with NMI
Dumping ftrace buffer:
(ftrace buffer empty)
Kernel Offset: disabled
Rebooting in 86400 seconds..


---
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#bug-status-tracking for how to communicate with
syzbot.

Dmitry Vyukov

unread,
Jul 10, 2018, 4:08:43 AM7/10/18
to syzbot, 'Dmitry Vyukov' via syzkaller-upstream-moderation
#syz fix: bpf: sockhash, disallow bpf_tcp_close and update in parallel
> --
> You received this message because you are subscribed to the Google Groups
> "syzkaller-upstream-moderation" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to syzkaller-upstream-m...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/syzkaller-upstream-moderation/000000000000344a1105709cbb99%40google.com.
> For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages