CVE-2026-23234 PUBLISHED

f2fs: fix to avoid UAF in f2fs_write_end_io()

Assigner: Linux
Reserved: 13.01.2026 Published: 04.03.2026 Updated: 04.03.2026

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.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from e234088758fca3a669ebb1a02d8bf7bf60f0e4ff to 0fb58aff0dafd6837cc91f4154f3ed6e020358fa (excl.)
  • affected from e234088758fca3a669ebb1a02d8bf7bf60f0e4ff to 2f67ff1e15a8a4d0e4ffc6564ab20d03d7398fe9 (excl.)
  • affected from e234088758fca3a669ebb1a02d8bf7bf60f0e4ff to 505e1c0530db6152cab3feef8e3e4da3d3e358c9 (excl.)
  • affected from e234088758fca3a669ebb1a02d8bf7bf60f0e4ff to acc2c97fc0005846e5cf11b5ba3189fef130c9b3 (excl.)
  • affected from e234088758fca3a669ebb1a02d8bf7bf60f0e4ff to cf4a9e1bc8129eb63fda5f8bdcd8d87f0bd76f42 (excl.)
  • affected from e234088758fca3a669ebb1a02d8bf7bf60f0e4ff to 995030be4ce6338c6ff814583c14166446a64008 (excl.)
  • affected from e234088758fca3a669ebb1a02d8bf7bf60f0e4ff to a42f99be8a16b32a0bb91bb6dda212a6ad61be5d (excl.)
  • affected from e234088758fca3a669ebb1a02d8bf7bf60f0e4ff to ce2739e482bce8d2c014d76c4531c877f382aa54 (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 3.13 is affected
  • unaffected from 0 to 3.13 (excl.)
  • unaffected from 5.10.251 to 5.10.* (incl.)
  • unaffected from 5.15.201 to 5.15.* (incl.)
  • unaffected from 6.1.164 to 6.1.* (incl.)
  • unaffected from 6.6.127 to 6.6.* (incl.)
  • unaffected from 6.12.74 to 6.12.* (incl.)
  • unaffected from 6.18.13 to 6.18.* (incl.)
  • unaffected from 6.19.3 to 6.19.* (incl.)
  • unaffected from 7.0-rc1 to * (incl.)

References