CVE-2026-89832 PUBLISHED

f2fs: fix to clear dirty flag on folio in error path

Assigner: Linux
Reserved: 11.09.2026 Published: 16.09.2026 Updated: 16.09.2026

In the Linux kernel, the following vulnerability has been resolved:

f2fs: fix to clear dirty flag on folio in error path

If node block is corrupted due to chksum mismatch or inconsistent footer info, it needs to drop clear flag of node folio, in order to persist inconsistent node data to storage.

Metrics

CVSS Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS Score: 7.8

AV:L - __get_node_folio is reached only through local VFS operations (lookup, open, read/write, fallocate, fsync, GC) on a mounted f2fs volume such as Android userdata or removable flash; it is not a ksmbd/nfsd/packet-processing path. AC:L - A crafted f2fs image lets the attacker pick node footers and nids so a dirty direct-node folio is later re-fetched as NODE_TYPE_INODE (or fails checksum) on ordinary file ops; triggering is deterministic with no race or rare config. PR:L - After automount (Android vold/udisks2 portable f2fs) or on already-mounted userdata, any unprivileged user with file access reaches __get_node_folio via write then lookup; no CAP_SYS_ADMIN is needed on that syscall path. UI:N - The attacker dirties the node and then looks up the type-confused nid themselves; removable f2fs is commonly auto-mounted and scanned without a separate victim mount or open step. S:U - Dirty-flag mishandling, persisted node metadata, and any page-cache fallout remain in the host kernel's authority; this is not a VM escape, container breakout, or IOMMU bypass. C:H - A still-dirty corrupted node folio can be written back with inconsistent mappings, and a later read_node_folio will read into that dirty folio; file offsets can then resolve to other files' or leftover blocks and disclose their contents. I:H - Writeback of the leftover dirty node persists inconsistent footer/checksum metadata, and the subsequent read into a dirty folio overwrites in-memory node contents from disk, corrupting block maps in an attacker-influenced way. A:H - Footer failure on a still-dirty node stops checkpoint (and panics with errors=panic), can leak F2FS_DIRTY_NODES so checkpoint retries hang, and dirty !uptodate node folios can oops or freeze filesystem I/O.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from b42b179bda9ff11075a6fc2bac4d9e400513679a to ab35ae07f2b5b4e118ea47b88577fc7d0e797b17 (excl.)
  • affected from b42b179bda9ff11075a6fc2bac4d9e400513679a to 3923ec2b98c96dda4a8bfab81d22553dbf0dd6c2 (excl.)
  • affected from b42b179bda9ff11075a6fc2bac4d9e400513679a to 5b86eab84ac8e9289b5afc52ef88ab18ba5bacab (excl.)
  • Version 8d7ebdd109b4654ec5e0e9c3c6f08b06d6558f10 is affected
  • Version b039536485970829918aa237a08417bd0ed5437c is affected
  • affected from 4.19.51 to 4.20 (excl.)
  • affected from 5.1.10 to 5.2 (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 5.2 is affected
  • unaffected from 0 to 5.2 (excl.)
  • unaffected from 6.18.51 to 6.18.* (incl.)
  • unaffected from 7.2.5 to 7.2.* (incl.)
  • unaffected from 7.3-rc1 to * (incl.)

References