Executive brief
The Linux kernel's f2fs filesystem contains a resource leak in its data block allocation logic. When allocating new data blocks fails after block counts have already been incremented, the system does not properly roll back those changes, causing permanent loss of available storage space. This can gradually consume system resources and degrade filesystem performance over time.
Technical details
The vulnerability is a resource leak in the __allocate_data_block() function in fs/f2fs/data.c. When allocating a new data block (dn->data_blkaddr == NULL_ADDR), the function calls inc_valid_block_count() to increment total_valid_block_count and i_blocks before attempting f2fs_allocate_data_block(). If the subsequent allocation fails, the function returns immediately without calling dec_valid_block_count() to undo the increment, causing a permanent leak of block count tracking. The fix adds a rollback call when allocation fails and old_blkaddr == NULL_ADDR. This is a local denial of service affecting filesystem resource availability; no network access or privilege escalation is involved.
Affected products
- Linux Linux kernel multiple versions (see stable tree branches)
Timeline
- 2026-09-16: disclosed: CVE-2026-89830 published on NVD
- 2026-08-05: patched: Patch committed upstream by Jaegeuk Kim
- 2026-09-14: patched: Patch included in stable kernel releases by Greg Kroah-Hartman