f2fs: fix to avoid UAF in f2fs_write_end_io()
Description
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.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
Affected products
3Patches
Vulnerability mechanics
References
8- git.kernel.org/stable/c/0fb58aff0dafd6837cc91f4154f3ed6e020358famitre
- git.kernel.org/stable/c/2f67ff1e15a8a4d0e4ffc6564ab20d03d7398fe9mitre
- git.kernel.org/stable/c/505e1c0530db6152cab3feef8e3e4da3d3e358c9mitre
- git.kernel.org/stable/c/995030be4ce6338c6ff814583c14166446a64008mitre
- git.kernel.org/stable/c/a42f99be8a16b32a0bb91bb6dda212a6ad61be5dmitre
- git.kernel.org/stable/c/acc2c97fc0005846e5cf11b5ba3189fef130c9b3mitre
- git.kernel.org/stable/c/ce2739e482bce8d2c014d76c4531c877f382aa54mitre
- git.kernel.org/stable/c/cf4a9e1bc8129eb63fda5f8bdcd8d87f0bd76f42mitre
News mentions
0No linked articles in our index yet.