netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* UBSAN: shift-out-of-bounds in xprt_do_reserve
@ 2021-02-10  1:24 syzbot
  2021-02-11  0:52 ` Randy Dunlap
  0 siblings, 1 reply; 3+ messages in thread
From: syzbot @ 2021-02-10  1:24 UTC (permalink / raw)
  To: anna.schumaker, bfields, chuck.lever, davem, kuba, linux-kernel,
	linux-nfs, netdev, syzkaller-bugs, trond.myklebust

Hello,

syzbot found the following issue on:

HEAD commit:    dd86e7fa Merge tag 'pci-v5.11-fixes-2' of git://git.kernel..
git tree:       upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=105930c4d00000
kernel config:  https://syzkaller.appspot.com/x/.config?x=266a5362c89c8127
dashboard link: https://syzkaller.appspot.com/bug?extid=f3a0fa110fd630ab56c8
compiler:       Debian clang version 11.0.1-2
syz repro:      https://syzkaller.appspot.com/x/repro.syz?x=17ba3038d00000
C reproducer:   https://syzkaller.appspot.com/x/repro.c?x=15cf0d64d00000

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

================================================================================
UBSAN: shift-out-of-bounds in net/sunrpc/xprt.c:658:14
shift exponent 536870976 is too large for 64-bit type 'unsigned long'
CPU: 1 PID: 8411 Comm: syz-executor902 Not tainted 5.11.0-rc6-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+0x137/0x1be lib/dump_stack.c:120
 ubsan_epilogue lib/ubsan.c:148 [inline]
 __ubsan_handle_shift_out_of_bounds+0x432/0x4d0 lib/ubsan.c:395
 xprt_calc_majortimeo net/sunrpc/xprt.c:658 [inline]
 xprt_init_majortimeo net/sunrpc/xprt.c:686 [inline]
 xprt_request_init net/sunrpc/xprt.c:1805 [inline]
 xprt_do_reserve+0x751/0x770 net/sunrpc/xprt.c:1815
 __rpc_execute+0x1e1/0xb00 net/sunrpc/sched.c:891
 rpc_run_task+0x5a4/0x740 net/sunrpc/clnt.c:1140
 rpc_call_sync net/sunrpc/clnt.c:1169 [inline]
 rpc_ping net/sunrpc/clnt.c:2682 [inline]
 rpc_create_xprt+0x2f3/0x700 net/sunrpc/clnt.c:477
 rpc_create+0x5df/0x8a0 net/sunrpc/clnt.c:593
 nfs_create_rpc_client+0x5a0/0x740 fs/nfs/client.c:536
 nfs_init_client+0x53/0xf0 fs/nfs/client.c:653
 nfs_init_server fs/nfs/client.c:692 [inline]
 nfs_create_server+0x82d/0x2130 fs/nfs/client.c:996
 nfs_try_get_tree+0x385/0x1040 fs/nfs/super.c:939
 vfs_get_tree+0x86/0x270 fs/super.c:1496
 do_new_mount fs/namespace.c:2881 [inline]
 path_mount+0x17ad/0x2a00 fs/namespace.c:3211
 do_mount fs/namespace.c:3224 [inline]
 __do_sys_mount fs/namespace.c:3432 [inline]
 __se_sys_mount+0x28c/0x320 fs/namespace.c:3409
 do_syscall_64+0x2d/0x70 arch/x86/entry/common.c:46
 entry_SYSCALL_64_after_hwframe+0x44/0xa9
RIP: 0033:0x43ef89
Code: 28 c3 e8 2a 14 00 00 66 2e 0f 1f 84 00 00 00 00 00 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 73 01 c3 48 c7 c1 c0 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007ffe0a856338 EFLAGS: 00000246 ORIG_RAX: 00000000000000a5
RAX: ffffffffffffffda RBX: 0030656c69662f2e RCX: 000000000043ef89
RDX: 0000000020fb5ffc RSI: 0000000020000080 RDI: 00000000200000c0
RBP: 0000000000402f70 R08: 000000002000a000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000403000
R13: 0000000000000000 R14: 00000000004ac018 R15: 0000000000400488
================================================================================


---
This report 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 syzkaller@googlegroups.com.

syzbot will keep track of this issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.
syzbot can test patches for this issue, for details see:
https://goo.gl/tpsmEJ#testing-patches

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: UBSAN: shift-out-of-bounds in xprt_do_reserve
  2021-02-10  1:24 UBSAN: shift-out-of-bounds in xprt_do_reserve syzbot
@ 2021-02-11  0:52 ` Randy Dunlap
  2021-02-11  1:07   ` Trond Myklebust
  0 siblings, 1 reply; 3+ messages in thread
From: Randy Dunlap @ 2021-02-11  0:52 UTC (permalink / raw)
  To: syzbot, anna.schumaker, bfields, chuck.lever, davem, kuba,
	linux-kernel, linux-nfs, netdev, syzkaller-bugs, trond.myklebust

On 2/9/21 5:24 PM, syzbot wrote:
> Hello,
> 
> syzbot found the following issue on:
> 
> HEAD commit:    dd86e7fa Merge tag 'pci-v5.11-fixes-2' of git://git.kernel..
> git tree:       upstream
> console output: https://syzkaller.appspot.com/x/log.txt?x=105930c4d00000
> kernel config:  https://syzkaller.appspot.com/x/.config?x=266a5362c89c8127
> dashboard link: https://syzkaller.appspot.com/bug?extid=f3a0fa110fd630ab56c8
> compiler:       Debian clang version 11.0.1-2
> syz repro:      https://syzkaller.appspot.com/x/repro.syz?x=17ba3038d00000
> C reproducer:   https://syzkaller.appspot.com/x/repro.c?x=15cf0d64d00000
> 
> IMPORTANT: if you fix the issue, please add the following tag to the commit:
> Reported-by: syzbot+f3a0fa110fd630ab56c8@syzkaller.appspotmail.com

#syz dup: UBSAN: shift-out-of-bounds in xprt_calc_majortimeo

> ================================================================================
> UBSAN: shift-out-of-bounds in net/sunrpc/xprt.c:658:14
> shift exponent 536870976 is too large for 64-bit type 'unsigned long'
> CPU: 1 PID: 8411 Comm: syz-executor902 Not tainted 5.11.0-rc6-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+0x137/0x1be lib/dump_stack.c:120
>  ubsan_epilogue lib/ubsan.c:148 [inline]
>  __ubsan_handle_shift_out_of_bounds+0x432/0x4d0 lib/ubsan.c:395
>  xprt_calc_majortimeo net/sunrpc/xprt.c:658 [inline]
>  xprt_init_majortimeo net/sunrpc/xprt.c:686 [inline]


-- 
~Randy


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: UBSAN: shift-out-of-bounds in xprt_do_reserve
  2021-02-11  0:52 ` Randy Dunlap
@ 2021-02-11  1:07   ` Trond Myklebust
  0 siblings, 0 replies; 3+ messages in thread
From: Trond Myklebust @ 2021-02-11  1:07 UTC (permalink / raw)
  To: rdunlap, davem, chuck.lever, syzbot+f3a0fa110fd630ab56c8,
	linux-kernel, kuba, netdev, bfields, anna.schumaker, linux-nfs,
	syzkaller-bugs

Hi Randy,

On Wed, 2021-02-10 at 16:52 -0800, Randy Dunlap wrote:
> On 2/9/21 5:24 PM, syzbot wrote:
> > Hello,
> > 
> > syzbot found the following issue on:
> > 
> > HEAD commit:    dd86e7fa Merge tag 'pci-v5.11-fixes-2' of
> > git://git.kernel..
> > git tree:       upstream
> > console output:
> > https://syzkaller.appspot.com/x/log.txt?x=105930c4d00000
> > kernel config: 
> > https://syzkaller.appspot.com/x/.config?x=266a5362c89c8127
> > dashboard link:
> > https://syzkaller.appspot.com/bug?extid=f3a0fa110fd630ab56c8
> > compiler:       Debian clang version 11.0.1-2
> > syz repro:     
> > https://syzkaller.appspot.com/x/repro.syz?x=17ba3038d00000
> > C reproducer:  
> > https://syzkaller.appspot.com/x/repro.c?x=15cf0d64d00000
> > 
> > IMPORTANT: if you fix the issue, please add the following tag to
> > the commit:
> > Reported-by: syzbot+f3a0fa110fd630ab56c8@syzkaller.appspotmail.com
> 
> #syz dup: UBSAN: shift-out-of-bounds in xprt_calc_majortimeo
> 
> > ===================================================================
> > =============
> > UBSAN: shift-out-of-bounds in net/sunrpc/xprt.c:658:14
> > shift exponent 536870976 is too large for 64-bit type 'unsigned
> > long'
> > CPU: 1 PID: 8411 Comm: syz-executor902 Not tainted 5.11.0-rc6-
> > 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+0x137/0x1be lib/dump_stack.c:120
> >  ubsan_epilogue lib/ubsan.c:148 [inline]
> >  __ubsan_handle_shift_out_of_bounds+0x432/0x4d0 lib/ubsan.c:395
> >  xprt_calc_majortimeo net/sunrpc/xprt.c:658 [inline]
> >  xprt_init_majortimeo net/sunrpc/xprt.c:686 [inline]
> 
> 

So, firstly, this is a case of 'doctor it hurts when I do this...' so
it isn't a critcal issue. It is a case where garbage mount options
produces garbage timeout values.
However, more importantly, it is a case where we could easily be
checking these values once at mount time instead of adding runtime
checks that can end up being called several times per RPC call.

Cheers
  Trond
-- 
Trond Myklebust
Linux NFS client maintainer, Hammerspace
trond.myklebust@hammerspace.com



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-02-11  1:08 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-10  1:24 UBSAN: shift-out-of-bounds in xprt_do_reserve syzbot
2021-02-11  0:52 ` Randy Dunlap
2021-02-11  1:07   ` Trond Myklebust

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).