7.8 HIGH
- CVSS version (CVSS): 3.1
- Attack Vector (AV): Local (L)
- Attack Complexity (AC): Low (L)
- Privileges Required (PR): Low (L)
- User Interaction (UI): None (N)
- Scope (S): Unchanged (U)
- Confidentiality (C): High (H)
- Integrity (I): High (H)
- Availability (A): High (H)
- Modified Attack Vector (MAV): Local (L)
- Modified Attack Complexity (MAC): Low (L)
- Modified Privileges Required (MPR): Low (L)
- Modified User Interaction (MUI): None (N)
- Modified Confidentiality (MC): High (H)
- Modified Scope (MS): Unchanged (U)
- Modified Integrity (MI): High (H)
- Modified Availability (MA): High (H)
Activity log
- Created & dismissed (max. allowed matches exceeded) suggestion
fuse: re-lock request before replacing page cache folio
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().
References
Affected products
- =<6.18.*
- <5927b43a4f8d89e86930f524bf63e9c7e66f61b4
- <2.6.35
- <7c18691e0cfda29672f79bafde8abdb7710674f6
- =<7.0.*
- =<5.15.*
- =<6.12.*
- =<7.1.*
- <0223f452532d9cd8a5e87c45de828fd93c99bd25
- <030fe3e9d8abdee303dd7e9e42f45082d382a407
- <af2892249d982a1c036ca456cc135374e68b6677
- <e28db6ac4792d065ab32565fd9f0a2361c3d4666
- <a078484921052d0badd827fcc2770b5cfc1d4120
- =<*
- =<6.1.*
- <46473ddccdc5065033e397d6e62c280dbcd3d9c2
- =<6.6.*
- ==2.6.35