CVE-2026-97437 in Linux
Zusammenfassung
von VulDB • 24.09.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
ntfs3: Behebung eines Out-of-Bounds-Lesezugriffs in ntfs_dir_emit() und hdr_find_e()
Die Grenzwertprüfung in ntfs_dir_emit() vergleicht fname->name_len (eine Zeichenanzahl) mit e->size (einer Byte-Anzahl), ohne die UTF-16LE-Kodierung mit 2 Bytes pro Zeichen oder die Header-Größe von ATTR_FILE_NAME zu berücksichtigen:
if (fname->name_len + sizeof(struct NTFS_DE) > le16_to_cpu(e->size))
Dies berechnet: name_len + 16 > e_size
Die korrekte Prüfung muss den ATTR_FILE_NAME-Header (66 Bytes vor dem Namen) und die UTF-16LE-Zeichengröße (2 Bytes pro Zeichen) berücksichtigen:
sizeof(NTFS_DE) + offsetof(ATTR_FILE_NAME, name) + name_len * sizeof(short) > e_size
Dies berechnet: 16 + 66 + name_len * 2 > e_size
Die korrekte Berechnung ist bereits als fname_full_size() in ntfs.h vorhanden und wird in cmp_fnames(), namei.c und fslog.c verwendet, wurde jedoch im readdir-Pfad nicht eingesetzt.
Ein speziell angefertigtes NTFS-Abbild mit einem Index-Eintrag, der ein kleines e->size, aber einen großen fname->name_len aufweist, umgeht die aktuelle Prüfung und führt dazu, dass ntfs_utf16_to_nls() über den Eintragsrand hinausliest.
Zusätzlich wurde eine key_size-Validierung in hdr_find_e() hinzugefügt, um sicherzustellen, dass der deklarierte key_size die verfügbaren Eingabedaten nicht überschreitet und so Vergleichsfunktionen daran hindert, im Lookup-Pfad über den Eintragsrand hinauszulesen.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.