Back

MEDIUM

fuse-uring: fix moving cancelled entry to ent_in_userspace list

Published Jul 25, 2026

Description

fuse_uring_cancel() moves entries that are available (these have no reqs attached) to the ent_in_userspace list. ent_list_request_expired() checks the first entry on ent_in_userspace and dereferences ent->fuse_req unconditionally, which will crash on a cancelled entry that was moved to this list.

Fix this by freeing the entry and dropping queue_refs directly in fuse_uring_cancel(). This is safe because cancel is the cancel handler itself - after io_uring_cmd_done(), no more cancels will be dispatched for this command, and teardown serializes with cancel via queue->lock.

Since cancel now decrements queue_refs, fuse_uring_abort() must no longer gate fuse_uring_abort_end_requests() on queue_refs > 0, as cancelled entries may have already dropped queue_refs while requests are still queued. Remove the gate so abort always flushes requests and stops queues.

Affected products

Remediation

No remediation recorded yet.

References (9)

Change history (0)

No recorded changes yet.

Sources
CVE.org / MITRE
Status PUBLISHED
Assigner Linux
Published Jul 25, 2026
Updated Aug 17, 2026
Reserved Jul 19, 2026
NVD
Status Analyzed
Modified Aug 17, 2026
Red Hat
Severity Low
Public date Jul 25, 2026
ENISA EUVD
Assigner Linux
Published Jul 25, 2026
Updated Aug 17, 2026
Exploited since n/a
EUVD-2026-48975