7.8
CVE-2026-23234
- EPSS 0.12%
- Veröffentlicht 04.03.2026 14:36:38
- Zuletzt bearbeitet 17.03.2026 21:21:25
- Quelle 416baaa9-dc9f-4396-8d5f-8c081f
- CVE-Watchlists
- Unerledigt
f2fs: fix to avoid UAF in f2fs_write_end_io()
In the Linux kernel, the following vulnerability has been resolved:
f2fs: fix to avoid UAF in f2fs_write_end_io()
As syzbot reported an use-after-free issue in f2fs_write_end_io().
It is caused by below race condition:
loop device umount
- worker_thread
- loop_process_work
- do_req_filebacked
- lo_rw_aio
- lo_rw_aio_complete
- blk_mq_end_request
- blk_update_request
- f2fs_write_end_io
- dec_page_count
- folio_end_writeback
- kill_f2fs_super
- kill_block_super
- f2fs_put_super
: free(sbi)
: get_pages(, F2FS_WB_CP_DATA)
accessed sbi which is freed
In kill_f2fs_super(), we will drop all page caches of f2fs inodes before
call free(sbi), it guarantee that all folios should end its writeback, so
it should be safe to access sbi before last folio_end_writeback().
Let's relocate ckpt thread wakeup flow before folio_end_writeback() to
resolve this issue.Daten sind bereitgestellt durch National Vulnerability Database (NVD)
Linux ≫ Linux Kernel Version >= 3.13 < 5.10.251
Linux ≫ Linux Kernel Version >= 5.11 < 5.15.201
Linux ≫ Linux Kernel Version >= 5.16 < 6.1.164
Linux ≫ Linux Kernel Version >= 6.2 < 6.6.127
Linux ≫ Linux Kernel Version >= 6.7 < 6.12.74
Linux ≫ Linux Kernel Version >= 6.13 < 6.18.13
Linux ≫ Linux Kernel Version >= 6.19 < 6.19.3
VulnDex Vulnerability Enrichment
| Typ | Quelle | Score | Percentile |
|---|---|---|---|
| EPSS | FIRST.org | 0.12% | 0.021 |
| Quelle | Base Score | Exploit Score | Impact Score | Vector String |
|---|---|---|---|---|
| nvd@nist.gov | 7.8 | 1.8 | 5.9 |
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
|
CWE-416 Use After Free
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.
https://git.kernel.org/stable/c/0fb58aff0dafd6837cc91f4154f3ed6e020358fa
https://git.kernel.org/stable/c/2f67ff1e15a8a4d0e4ffc6564ab20d03d7398fe9
https://git.kernel.org/stable/c/505e1c0530db6152cab3feef8e3e4da3d3e358c9
https://git.kernel.org/stable/c/acc2c97fc0005846e5cf11b5ba3189fef130c9b3
https://git.kernel.org/stable/c/cf4a9e1bc8129eb63fda5f8bdcd8d87f0bd76f42
https://git.kernel.org/stable/c/995030be4ce6338c6ff814583c14166446a64008
https://git.kernel.org/stable/c/a42f99be8a16b32a0bb91bb6dda212a6ad61be5d
https://git.kernel.org/stable/c/ce2739e482bce8d2c014d76c4531c877f382aa54