On Tue, Sep 29, 2020 at 08:38:15AM +0200, Christoph Hellwig wrote: > On Mon, Sep 28, 2020 at 03:14:41PM -0700, Eric Biggers wrote: > > On Sat, Sep 26, 2020 at 01:17:04PM +0000, David Laight wrote: > > > From: David Laight > > > > Sent: 26 September 2020 12:16 > > > > To: 'syzbot' <syzbot+51177e4144d764827c45@xxxxxxxxxxxxxxxxxxxxxxxxx>; linux-fsdevel@xxxxxxxxxxxxxxx; > > > > linux-kernel@xxxxxxxxxxxxxxx; syzkaller-bugs@xxxxxxxxxxxxxxxx; viro@xxxxxxxxxxxxxxxxxx > > > > Subject: RE: WARNING in __kernel_read (2) > > > > > > > > > From: syzbot <syzbot+51177e4144d764827c45@xxxxxxxxxxxxxxxxxxxxxxxxx> > > > > > Sent: 26 September 2020 03:58 > > > > > To: linux-fsdevel@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; syzkaller-bugs@xxxxxxxxxxxxxxxx; > > > > > viro@xxxxxxxxxxxxxxxxxx > > > > > Subject: WARNING in __kernel_read (2) > > > > > > > > I suspect this is calling finit_module() on an fd > > > > that doesn't have read permissions. > > > > > > Code inspection also seems to imply that the check means > > > the exec() also requires read permissions on the file. > > > > > > This isn't traditionally true. > > > suid #! scripts are particularly odd without 'owner read' > > > (everyone except the owner can run them!). > > > > Christoph, any thoughts here? You added this WARN_ON_ONCE in: > > > > commit 61a707c543e2afe3aa7e88f87267c5dafa4b5afa > > Author: Christoph Hellwig <hch@xxxxxx> > > Date: Fri May 8 08:54:16 2020 +0200 > > > > fs: add a __kernel_read helper > > Linus asked for it. What is the call chain that we hit it with? Call Trace: kernel_read+0x52/0x70 fs/read_write.c:471 kernel_read_file fs/exec.c:989 [inline] kernel_read_file+0x2e5/0x620 fs/exec.c:952 kernel_read_file_from_fd+0x56/0xa0 fs/exec.c:1076 __do_sys_finit_module+0xe6/0x190 kernel/module.c:4066 do_syscall_64+0x2d/0x70 arch/x86/entry/common.c:46 entry_SYSCALL_64_after_hwframe+0x44/0xa9 See the email from syzbot for the full details: https://lkml.kernel.org/linux-fsdevel/000000000000da992305b02e9a51@xxxxxxxxxx