Description (CNA)
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.
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected 3393ff964e0fa5def66570c54a4612bf9df06b76 before 8974575898cd7a4c818088f102b2e7a0286d3302; affected 3393ff964e0fa5def66570c54a4612bf9df06b76 before dd9c835709f4bb3e4256eea7573e4e6e18f956de; affected 3393ff964e0fa5def66570c54a4612bf9df06b76 before edb310bc27f0ad83e7fd558a3caf1a94ca511654 |
| Linux / Linux | affected 6.14; unaffected 0 before 6.14; unaffected 6.18.51 through 6.18.*; unaffected 7.2.3 through 7.2.*; unaffected 7.3 through * |
CWE
No CWE identifiers supplied.