High · published July 19, 2026
In the Linux kernel, the following vulnerability has been resolved:
fuse: re-lock request before replacing page cache folio
fuse_try_move_folio() unlocks the request on entry but does not
re-lock it on the success path. This means fuse_chan_abort() can end the
request and free the fuse_io_args (eg fuse_readpages_end()) while the
subsequent copy chain logic after fuse_try_move_folio() accesses the
fuse_io_args, leading to use-after-free issues.
Fix this by calling lock_request() before replace_page_cache_folio().
This ensures the request is locked on the success path which will
prevent the fuse_io_args from being freed while the later copying logic
runs, and also ensures that the ap->folios[i]->mapping is never null
since ap->folios[i] will always point to the newfolio after
replace_page_cache_folio().
| Product | Versions | Fixed in |
|---|---|---|
| linux/linux_kernel | ≥ 2.6.35, < 5.15.211 | 5.15.211 |
| linux/linux_kernel | ≥ 5.16, < 6.1.177 | 6.1.177 |
| linux/linux_kernel | ≥ 6.2, < 6.6.144 | 6.6.144 |
| linux/linux_kernel | ≥ 6.7, < 6.12.95 | 6.12.95 |
| linux/linux_kernel | ≥ 6.13, < 6.18.37 | 6.18.37 |
| linux/linux_kernel | ≥ 6.19, < 7.0.14 | 7.0.14 |
| linux/linux_kernel | ≥ 7.1, < 7.1.2 | 7.1.2 |