CVE-2026-53388
Awaiting Analysis
Awaiting Analysis - Queue
FUSE Request Use-After-Free in Linux Kernel
Vulnerability report for CVE-2026-53388, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.
Publication date: 2026-07-19
Last updated on: 2026-07-29
Assigner: kernel.org
Description
Description
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().
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| linux | linux_kernel | From 5.16 (inc) to 6.1.177 (exc) |
| linux | linux_kernel | From 6.2 (inc) to 6.6.144 (exc) |
| linux | linux_kernel | From 6.7 (inc) to 6.12.95 (exc) |
| linux | linux_kernel | From 6.13 (inc) to 6.18.37 (exc) |
| linux | linux_kernel | From 6.19 (inc) to 7.0.14 (exc) |
| linux | linux_kernel | From 7.1 (inc) to 7.1.2 (exc) |
| linux | linux_kernel | From 2.6.35 (inc) to 5.15.211 (exc) |
Helpful Resources
Exploitability
| CWE ID | Description |
|---|---|
| CWE-416 | The product reuses or references memory after it has been freed. At some point afterward, the memory may be allocated again and saved in another pointer, while the original pointer references a location somewhere within the new allocation. Any operations using the original pointer are no longer valid because the memory "belongs" to the code that operates on the new pointer. |