CVE-2026-68086 in Linuxinformation

Résumé

par VulDB • 10/08/2026

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

mm/khugepaged : écrire tous les folios de fichier sales lors du regroupement (collapsing)

[Il n'y a pas de commit en amont, car ce code a été supprimé par le commit amont 044925f9b565 ("mm: fs: remove filemap_nr_thps*() functions and their users")]

Tels quels, khugepaged et l'ouverture d'un fichier en écriture s'excluent mutuellement. Un fichier ne peut pas être ouvert en écriture et avoir des THP (car le système de fichiers n'en a pas connaissance). khugepaged ne regroupera jamais les pages de fichier pour les fichiers ouverts en écriture. Lors d'une ouverture avec open(O_RDWR/O_WRONLY), le cache page correspondant à ce fichier spécifique est supprimé. Cela convient car rien n'a pu être marqué comme sale (dirty).

Cependant, il existe un cas limite : collapse_file() peut ne pas pouvoir coexister avec des écritures concurrentes, mais il peut coexister avec les folios sales (provenant d'écritures précédentes). Par conséquent, ce qui suit peut se produire :

open(file, O_RDWR) write(file) close(file) madvise(file_mapping, MADV_COLLAPSE, some non-dirty range) open(file, O_RDWR) nr_thps > 0 truncate_inode_pages() /* Les THP sont effacés, mais il en va de même pour les folios sales */

Lorsque ce cas limite se produit, une perte de données survient, car les folios sales sont entièrement ignorés.

La correction consiste à écrire intégralement le cache page (et à attendre) lors du regroupement des THP de fichier. Cela garantit qu'aucun folio sale ne sera observé tant que des THP actifs existent. Pour s'assurer pleinement que cela est sûr, l'invalidate_lock doit être détenu pendant l'écriture, afin que la suppression du cache page dans do_dentry_open() exclue cette écriture et cet attende.

En effet secondaire, le comptage de nr_thps a été déplacé en dehors du verrou i_pages. Cela est correct car le compteur lui-même est un atomic_t et l'exactitude producteur-consommateur est assurée par une barrière mémoire complète : smp_mb() dans collapse_file()/barrière mémoire implicite due au plein ordre dans get_write_access() -> atomic_inc_unless_negative().

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Responsable

Linux

Réserver

30/07/2026

Divulgation

10/08/2026

Modérer

accepté

Entrée

VDB-387427

CPE

prêt

EPSS

0.00000

KEV

non

Activités

faible

Sources

Do you need the next level of professionalism?

Upgrade your account now!