Skip to content
CVE PROGRAM SOURCE RECORD7.8 High

CVE-2023-53537

f2fs: fix to avoid use-after-free for cached IPU bio

Description

In the Linux kernel, the following vulnerability has been resolved: f2fs: fix to avoid use-after-free for cached IPU bio xfstest generic/019 reports a bug: kernel BUG at mm/filemap.c:1619! RIP: 0010:folio_end_writeback+0x8a/0x90 Call Trace: end_page_writeback+0x1c/0x60 f2fs_write_end_io+0x199/0x420 bio_endio+0x104/0x180 submit_bio_noacct+0xa5/0x510 submit_bio+0x48/0x80 f2fs_submit_write_bio+0x35/0x300 f2fs_submit_merged_ipu_write+0x2a0/0x2b0 f2fs_write_single_data_page+0x838/0x8b0 f2fs_write_cache_pages+0x379/0xa30 f2fs_write_data_pages+0x30c/0x340 do_writepages+0xd8/0x1b0 __writeback_single_inode+0x44/0x370 writeback_sb_inodes+0x233/0x4d0 __writeback_inodes_wb+0x56/0xf0 wb_writeback+0x1dd/0x2d0 wb_workfn+0x367/0x4a0 process_one_work+0x21d/0x430 worker_thread+0x4e/0x3c0 kthread+0x103/0x130 ret_from_fork+0x2c/0x50 The root cause is: after cp_error is set, f2fs_submit_merged_ipu_write() in f2fs_write_single_data_page() tries to flush IPU bio in cache, however f2fs_submit_merged_ipu_write() missed to check validity of @bio parameter, result in submitting random cached bio which belong to other IO context, then it will cause use-after-free issue, fix it by adding additional validity check.

Affected products

Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.

Linux Linux

Default version status: unaffected

  • 0b20fcec8651569935a10afe03fedc0b812d044e to < b2f423fda64fb49213aa0ed5056079cf295a5df2affected
  • 0b20fcec8651569935a10afe03fedc0b812d044e to < 9a7f63283af6befc0f91d549f4f6917dff7479a9affected
  • 0b20fcec8651569935a10afe03fedc0b812d044e to < 7d058f0ab161437369ad6e45a4b67c2886e71373affected
  • 0b20fcec8651569935a10afe03fedc0b812d044e to < 97ec6f1788cc6bee3f8c89cb908e1a2a1cd859bbaffected
  • 0b20fcec8651569935a10afe03fedc0b812d044e to < af4ce124d7bd74cb839bbdaccffbb416771a56b5affected
  • 0b20fcec8651569935a10afe03fedc0b812d044e to < 5cdb422c839134273866208dad5360835ddb9794affected

Linux Linux

Default version status: affected

  • 5.5affected
  • 0 to < 5.5unaffected
  • 5.10.180 to ≤ 5.10.*unaffected
  • 5.15.111 to ≤ 5.15.*unaffected
  • 6.1.28 to ≤ 6.1.*unaffected
  • 6.2.15 to ≤ 6.2.*unaffected
  • 6.3.2 to ≤ 6.3.*unaffected
  • 6.4 to ≤ *unaffected

References