CVE-2026-72203 in Linuxinformation

Résumé

par VulDB • 15/08/2026

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

ntfs : ignorer les enregistrements MFT d'étendue lors de l'écriture pour prévenir un blocage mutuel (deadlock)

Ce correctif résout le deadlock ABBA entre extent_lock et extent mrec_lock déclenché par xfstests generic/113, qui se produit depuis la validation 6994acf33bae (« ntfs : utiliser base mft_no lors de la recherche du nœud inode racine pour l'enregistrement d'étendue »).

Chemin A (écriture des inodes) : Écriture VFS -> ntfs_write_inode() -> __ntfs_write_inode() -> mutex_lock(&ni->extent_lock) -> mutex_lock(&tni->mrec_lock)

Chemin B (écriture du folio MFT) : Écriture des folios sales de $MFT par le VFS -> ntfs_mft_writepages() -> ntfs_write_mft_block() -> ntfs_may_write_mft_record() -> détient un extent mrec_lock issu d'une itération précédente -> tente d'acquérir un autre base inode extent_lock

En supprimant toute acquisition de extent_lock et extent mrec_lock du chemin d'écriture des folios MFT, l'ordre de verrouillage ABBA est éliminé :

Chemin A : __ntfs_write_inode() : extent_lock -> mrec_lock Chemin B (supprimé) : ntfs_write_mft_block() : mrec_lock -> extent_lock

Le chemin B est toujours redondant pour les enregistrements d'étendue car :

1. mark_mft_record_dirty(ext_ni) ne met PAS le folio MFT à l'état sale. Il définit uniquement NInoDirty(ext_ni) et marque l'inode VFS racine comme sale via __mark_inode_dirty(I_DIRTY_DATASYNC), ce qui déclenche le Chemin A. Par conséquent, les modifications normales d'étendue ne créent jamais une situation où le folio MFT est sale et que le Chemin B n'est pas planifié.

2. Le folio MFT devient uniquement « sale » via ntfs_mft_mark_dirty() à l'intérieur de ntfs_mft_record_alloc(). Mais tous les appelants identifiés dans attrib.c (ntfs_attr_add, ntfs_attr_record_move_away, ntfs_attr_make_non_resident, ntfs_attr_record_resize) poursuivent avec mark_mft_record_dirty(), ce qui déclenche le Chemin A pour écrire l'enregistrement complet.

3. ntfs_evict_big_inode() appelle ntfs_commit_inode() avant de libérer les inodes d'étendue, garantissant que toutes les étendues sales sont vidées via le Chemin A avant que l'inode racine ne quitte l'icache.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Responsable

Linux

Réserver

09/08/2026

Divulgation

15/08/2026

Modérer

accepté

Entrée

VDB-390628

CPE

prêt

EPSS

0.00000

KEV

non

Activités

très faible

Sources

Interested in the pricing of exploits?

See the underground prices here!