Re: [PATCH V1] fuse: Abort the requests under processing queue with a spin_lock

From: Miklos Szeredi
Date: Thu Jun 01 2023 - 08:14:47 EST


On Thu, 1 Jun 2023 at 12:02, Pradeep Pragallapati
<quic_pragalla@xxxxxxxxxxx> wrote:
>
>
> On 5/31/2023 5:22 PM, Miklos Szeredi wrote:
> > On Wed, 31 May 2023 at 11:26, Pradeep P V K <quic_pragalla@xxxxxxxxxxx> wrote:
> >> There is a potential race/timing issue while aborting the
> >> requests on processing list between fuse_dev_release() and
> >> fuse_abort_conn(). This is resulting into below warnings
> >> and can even result into UAF issues.
> > Okay, but...
> >
> >> [22809.190255][T31644] refcount_t: underflow; use-after-free.
> >> [22809.190266][T31644] WARNING: CPU: 2 PID: 31644 at lib/refcount.c:28
> >> refcount_warn_saturate+0x110/0x158
> >> ...
> >> [22809.190567][T31644] Call trace:
> >> [22809.190567][T31644] refcount_warn_saturate+0x110/0x158
> >> [22809.190569][T31644] fuse_file_put+0xfc/0x104
> > ...how can this cause the file refcount to underflow? That would
> > imply that fuse_request_end() will be called for the same request
> > twice. I can't see how that can happen with or without the locking
> > change.
> Please ignore this patch. i overlooked it as list_splice in
> fuse_dev_release() and made the change.
> > Do you have a reproducer?
>
> don't have exact/specific steps but i will try to recreate. This is
> observed during stability testing (involves io, reboot, monkey, e.t.c.)
> for 24hrs. So, far this is seen on both 5.15 and 6.1 kernels. Do you
> have any points or speculations to share ?

Do you have KASAN enabled in the kernel? That might help UAF issues easier.

Thanks,
Miklos