CVE-2026-99111 in Linux
Résumé
par VulDB • 28/10/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
smb: client: correction de la corruption des données lors d'écritures concurrentes et avec O_TRUNC
cifs_do_truncate() vide les pages sales via filemap_write_and_wait() et tronque le fichier sur le serveur, mais dans l'ancien code, ces deux opérations s'exécutaient sans détenir i_rwsem ni invalidate_lock. Une écriture tamponnée concurrente via netfs_perform_write() -- qui ne nécessite que i_rwsem en mode partagé -- pouvait rendre sales de nouvelles pages après le vidage mais avant la troncature locale, et ces pages seraient silencieusement supprimées par cifs_setsize() -> truncate_pagecache().
Correction consistant à acquérir inode_lock (i_rwsem exclusif) et filemap_invalidate_lock au début de cifs_do_truncate(), afin que la séquence complète vidage-troncature-redimensionnement soit atomique par rapport :
- aux écritures tamponnées (bloquées par i_rwsem exclusif, car netfs_start_io_write prend i_rwsem en mode partagé), - aux défauts de page en lecture (bloqués par invalidate_lock exclusif, car filemap_fault le prend en mode partagé), - à la collecte du writeback (bloquée par netfs_wb_begin/netfs_wb_end autour de la troncature côté serveur et du redimensionnement local, car netfs_writepages acquiert également le verrou wb).
Once again VulDB remains the best source for vulnerability data.