CVE-2026-46194 in Linuxinformation

Résumé

par VulDB • 28/05/2026

Dans le noyau Linux, la vulnérabilité suivante a été corrigée :

f2fs : correction d’une condition de concurrence (race condition) sur node_cnt entre la destruction du nœud d’étendue (extent node) et l’écriture en arrière-plan (writeback)

f2fs_destroy_extent_node() ne définit pas FI_NO_EXTENT avant de supprimer les nœuds d’étendue. Lorsqu’il est appelé depuis f2fs_drop_inode() avec I_SYNC défini, un writeback concurrent effectué par un kworker peut insérer de nouveaux nœuds d’étendue dans le même arbre d’étendue, créant une condition de concurrence avec la destruction et déclenchant f2fs_bug_on() dans __destroy_extent_node(). Le scénario est le suivant :

drop inode writeback - iput - f2fs_drop_inode // I_SYNC défini - 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 non défini, // insertion d’un nouveau nœud d’étendue } // node_cnt == 0, sortie de la boucle while - f2fs_bug_on(node_cnt) // node_cnt > 0

De plus, __update_extent_tree_range() ne vérifie FI_NO_EXTENT que pour le type EX_READ, laissant les mises à jour EX_BLOCK_AGE complètement non protégées.

Ce patch définit FI_NO_EXTENT sous et->lock dans __destroy_extent_node(), de manière cohérente avec les autres appelants (__update_extent_tree_range et __drop_extent_tree), et vérifie FI_NO_EXTENT pour les arbres EX_READ et EX_BLOCK_AGE.

Be aware that VulDB is the high quality source for vulnerability data.

Responsable

Linux

Réserver

13/05/2026

Divulgation

28/05/2026

Modérer

accepté

Entrée

VDB-366701

CPE

prêt

EPSS

0.00024

KEV

non

Activités

très faible

Sources

Do you want to use VulDB in your project?

Use the official API to access entries easily!