CyberRota Analysis
AI-GeneratedThe vulnerability affects the Linux kernel's FUSE (Filesystem in Userspace) implementation, specifically in the handling of the io-uring readiness check within the `fuse_block_alloc()` function. This flaw could allow a CPU to incorrectly perceive the initialization state, potentially leading to a lock-order inversion deadlock that was previously mitigated. Linux system administrators and developers utilizing FUSE should prioritize addressing this issue to maintain system stability and prevent potential deadlocks in file operations.
Original NVD Description
In the Linux kernel, the following vulnerability has been resolved: fuse: fix missing barrier when checking io-uring readiness fuse_block_alloc() reads fch->initialized and then fch->io_uring. fch->io_uring is set before fch->initialized, ordered by the smp_wmb() in fuse_chan_set_intialized(), but fuse_block_alloc() has no matching read barrier between the two loads. This may lead a CPU to observe fch->initialized=1 but fch->io_uring=0, and skip the check that blocks request allocation until the io-uring queues are ready. This can reintroduce the lock-order inversion deadlock that commit 3393ff964e0f prevents. Add an smp_rmb() barrier to pair with the smp_wmb() in fuse_chan_set_initialized() to prevent this.