CVE-2026-46194

Updated on 28 May 2026

Severity

4.7 Medium severity

Details

CVSS score
4.7

Overview

About vulnerability

In the Linux kernel, the following vulnerability has been resolved: f2fs: fix node_cnt race between extent node destroy and writeback f2fs_destroy_extent_node() does not set FI_NO_EXTENT before clearing extent nodes. When called from f2fs_drop_inode() with I_SYNC set, concurrent kworker writeback can insert new extent nodes into the same extent tree, racing with the destroy and triggering f2fs_bug_on() in __destroy_extent_node(). The scenario is as follows: drop inode writeback

  • iput
  • f2fs_drop_inode // I_SYNC set
  • f2fs_destroy_extent_node
  • __destroy_extent_node
  • while (node_cnt) { write_lock(&et->lock) __free_extent_tree write_unlock(&et->lock)
  • __writeback_single_inode
  • f2fs_outplace_write_data
  • f2fs_update_read_extent_cache
  • __update_extent_tree_range // FI_NO_EXTENT not set, // insert new extent node } // node_cnt == 0, exit while
  • f2fs_bug_on(node_cnt) // node_cnt > 0 Additionally, __update_extent_tree_range() only checks FI_NO_EXTENT for EX_READ type, leaving EX_BLOCK_AGE updates completely unprotected. This patch set FI_NO_EXTENT under et->lock in __destroy_extent_node(), consistent with other callers (__update_extent_tree_range and __drop_extent_tree) and check FI_NO_EXTENT for both EX_READ and EX_BLOCK_AGE tree. A flaw was found in the Linux kernel’s f2fs filesystem. A race condition exists between the f2fs_destroy_extent_node() function and concurrent writeback operations. This occurs because f2fs_destroy_extent_node() does not properly set a flag (FI_NO_EXTENT) before clearing extent nodes, allowing new extent nodes to be inserted during the destruction process. This can lead to a system crash, resulting in a Denial of Service (DoS).

Details

KernelCare state

Live-patch status from KernelCare for each operating system.

Operating system Status Covered kernels
Debian 13 Released
7 kernels
  • 6.12.85-1
  • 6.12.86-1
  • 6.12.73-1
  • 6.12.63-1
  • 6.12.69-1
  • 6.12.74-1
  • 6.12.74-2
Ubuntu 24.04 Planned