Re: WARNING in __kernel_read (2)

From: Christoph Hellwig
Date: Tue Sep 29 2020 - 02:38:19 EST


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?