CVE-2026-80672 in Linuxinformation

Résumé

par VulDB • 28/08/2026

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

ntfs : correction de la troncature u16 lors de la vérification de la longueur de la zone de redémarrage (restart-area)

La fonction ntfs_check_restart_area() valide que la zone de redémarrage du $LogFile et son tableau d'enregistrements clients logiques suivants tiennent dans la taille de page système :

u16 ra_ofs, ra_len, ca_ofs; ... ra_len = ca_ofs + le16_to_cpu(ra->log_clients) * sizeof(struct log_client_record); if (ra_ofs + ra_len > le32_to_cpu(rp->system_page_size) || ...) return false;

ra_len est de type u16, mais le côté droit du calcul est effectué en size_t (sizeof(struct log_client_record) == 160). Les valeurs ca_ofs et log_clients proviennent directement de la zone de redémarrage sur disque. Avec une valeur log_clients sur disque de 410, le produit 410 * 160 = 65600 ; l'ajout de ca_ofs et le stockage dans ra_len (u16) entraînent un débordement modulo 65536 (par exemple, avec ca_ofs égal à 64, on obtient ra_len égal à 128), de sorte que la vérification « tient dans la page » est validée bien que le tableau clients décrit par log_clients s'étende bien au-delà de la page.

La fonction ntfs_check_log_client_array() parcourt ensuite ce tableau en se bornant uniquement au nombre d'éléments log_clients sur disque :

cr = ca + idx; if (cr->prev_client != LOGFILE_NO_CLIENT) ...

Pour une valeur log_clients de 410, cela accède aux enregistrements jusqu'à ca + 409 * 160, soit environ 64 KiB au-delà du tampon restart-page alloué par kvzalloc(system_page_size), constituant ainsi une lecture hors limites (out-of-bounds read) sur une étendue contrôlée par l'attaquant. Cette situation est exploitable lorsqu'une image NTFS fabriquée de toute pièce est montée (via load_and_check_logfile() au moment du montage). Il s'agit de l'équivalent dans le noyau de la CVE-2022-30789, corrigée dans le pilote userspace ntfs-3g mais jamais dans ce pilote classique réactivé.

Calculer la longueur de la zone de redémarrage (restart-area) en u32 permet à la vérification des bornes existante de rejeter un tableau clients trop volumineux au lieu d'être contournée par cette troncature. Élargir également ra_ofs et ca_ofs vers u32 : ces deux valeurs sont chargées depuis des champs sur disque __le16, et chaque comparaison est déjà promue en int/size_t ; cela ne modifie donc aucun résultat tout en maintenant une déclaration uniforme.

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

Responsable

Linux

Réserver

26/08/2026

Divulgation

28/08/2026

Modérer

accepté

Entrée

VDB-396625

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!