Re: UBSAN: shift-out-of-bounds in load_balance

From: syzbot
Date: Mon Feb 22 2021 - 12:13:07 EST


syzbot has found a reproducer for the following issue on:

HEAD commit: 31caf8b2 Merge branch 'linus' of git://git.kernel.org/pub/..
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=16ab2682d00000
kernel config: https://syzkaller.appspot.com/x/.config?x=b81388f0b32761d4
dashboard link: https://syzkaller.appspot.com/bug?extid=d7581744d5fd27c9fbe1
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=1277457f500000

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+d7581744d5fd27c9fbe1@xxxxxxxxxxxxxxxxxxxxxxxxx

================================================================================
UBSAN: shift-out-of-bounds in kernel/sched/fair.c:7712:14
shift exponent 149 is too large for 64-bit type 'long unsigned int'
CPU: 0 PID: 12 Comm: ksoftirqd/0 Not tainted 5.11.0-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Call Trace:
__dump_stack lib/dump_stack.c:79 [inline]
dump_stack+0xfa/0x151 lib/dump_stack.c:120
ubsan_epilogue+0xb/0x5a lib/ubsan.c:148
__ubsan_handle_shift_out_of_bounds.cold+0xb1/0x181 lib/ubsan.c:395
detach_tasks kernel/sched/fair.c:7712 [inline]
load_balance.cold+0x1d/0x2e kernel/sched/fair.c:9641
rebalance_domains+0x5cc/0xdb0 kernel/sched/fair.c:10029
__do_softirq+0x29b/0x9f6 kernel/softirq.c:343
run_ksoftirqd kernel/softirq.c:650 [inline]
run_ksoftirqd+0x2d/0x60 kernel/softirq.c:642
smpboot_thread_fn+0x655/0x9e0 kernel/smpboot.c:165
kthread+0x3b1/0x4a0 kernel/kthread.c:292
ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:294
================================================================================
Kernel panic - not syncing: panic_on_warn set ...
CPU: 0 PID: 12 Comm: ksoftirqd/0 Not tainted 5.11.0-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Call Trace:
__dump_stack lib/dump_stack.c:79 [inline]
dump_stack+0xfa/0x151 lib/dump_stack.c:120
panic+0x306/0x73d kernel/panic.c:231
ubsan_epilogue+0x54/0x5a lib/ubsan.c:162
__ubsan_handle_shift_out_of_bounds.cold+0xb1/0x181 lib/ubsan.c:395
detach_tasks kernel/sched/fair.c:7712 [inline]
load_balance.cold+0x1d/0x2e kernel/sched/fair.c:9641
rebalance_domains+0x5cc/0xdb0 kernel/sched/fair.c:10029
__do_softirq+0x29b/0x9f6 kernel/softirq.c:343
run_ksoftirqd kernel/softirq.c:650 [inline]
run_ksoftirqd+0x2d/0x60 kernel/softirq.c:642
smpboot_thread_fn+0x655/0x9e0 kernel/smpboot.c:165
kthread+0x3b1/0x4a0 kernel/kthread.c:292
ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:294

======================================================