CVE-2026-89617
WysokieCVSS 7.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 3 - wyżej niż 3% wszystkich znanych CVE
Streszczenie
W jądrze Linux sterownik fs/ntfs3 nie waliduje tablicy dirty page table podczas odtwarzania dziennika. Podrobiony wpis DIR_PAGE_ENTRY z nieprawidłowym polem lcns_follow pozwala na wyjście poza wpis podczas konwersji v0->v1 i późniejszego odtwarzania.
Ocena ryzyka
Atakujący może zamontować spreparowany obraz NTFS, co prowadzi do dostępu poza granicami pamięci w jądrze i potencjalnej awarii systemu lub wykonania kodu.
Rekomendacja
Zaktualizuj jądro Linux do wersji zawierającej funkcję check_dp_table() odrzucającą wpisy większe niż deklarowany rozmiar.
Inne podatności w Linux kernel (fs/ntfs3)
Zobacz wszystkie- CVE-2026-89779Krytyczne
W jądrze Linux w fs/ntfs3 funkcja ntfs_read_ea() nie sprawdza, czy pole ef->size rekordu EA jest wystarczająco duże, aby pomieścić nazwę i wartość rekordu. Złośliwy obraz NTFS może ustawić małe ef->size przy dużym elength, co powoduje odczyt poza zaalokowanym buforem i wyciek pamięci jądra do przestrzeni użytkownika przez getxattr().
- CVE-2026-97438Wysokie
W jądrze Linux w module fs/ntfs3 wykryto lukę polegającą na braku walidacji rozmiaru klucza (key_size) w wpisach indeksu katalogu NTFS. Złośliwie spreparowany wpis indeksu może zadeklarować key_size większy niż rzeczywisty rozmiar danych, co prowadzi do odczytu poza zaalokowanym buforem (slab-out-of-bounds) w funkcji cmp_fnames().
- CVE-2026-90200Niskie ryzyko· EPSS 12%
W jądrze Linux w funkcji ntfs_init_from_boot() sterownika fs/ntfs3 występuje przepełnienie liczb całkowitych podczas walidacji numerów klastrów MFT z sektora rozruchowego. Mnożenie mlcn * sct_per_clst wykonywane w typie u64 może się przekręcić dla dużych wartości mlcn, co pozwala ominąć sprawdzenie rozmiaru wolumenu i zaakceptować zniekształcony rekord. W praktyce prowadzi to do nieudanego montowania systemu plików NTFS w nietypowych miejscach.
- CVE-2026-89782Wysokie
W jądrze Linux w module fs/ntfs3 wykryto podatność polegającą na braku walidacji rozmiaru tablicy restartu podczas odtwarzania $LogFile. Podczas montowania spreparowanego obrazu NTFS liczba wpisów przekraczająca U16_MAX jest obcinana, co prowadzi do alokacji zbyt małej tablicy i dostępu poza jej granicami (out-of-bounds).
- CVE-2026-89616Wysokie
W jądrze Linux funkcja ni_read_frame() w fs/ntfs3 ufa wartości zwracanej przez decompress_lznt(), która może być mniejsza niż rozmiar ramki. Niezapisane bajty pozostają w stronach vmapped i są zwracane do użytkownika, ujawniając niezainicjalizowaną pamięć jądra.
- CVE-2026-89615Wysokie
W jądrze Linux pętle copy_lcns i redo shorten w fs/ntfs3 indeksują page_lcns[] na podstawie liczby lcns_follow z rekordu dziennika, która nie jest sprawdzana względem docelowego wpisu. Spreparowany rekord może przepełnić page_lcns[] prawidłowego wpisu.
- CVE-2026-45864Średnie
W jądrze Linux w systemie plików NTFS3 wykryto podatność na zapętlenie nieskończone podczas przetwarzania zakresu [valid : pos). Jeśli wartość valid nie może zostać poprawnie odczytana i pozostaje taka sama, może dojść do blokady procesu (hung), co potwierdzono raportem syzbot. Dodano sprawdzenie, czy valid nie zmienia się w pętli, a w przypadku braku zmiany zwracany jest błąd -EINVAL.
- CVE-2025-71311Wysokie
W jądrze Linux w systemie plików NTFS3 wykryto podatność polegającą na użyciu niezainicjowanych folio. Nowo alokowane folio nie są oznaczane jako aktualne, a funkcja ni_read_frame() jest pomijana, gdy oczekuje się całkowitego nadpisania ramki, co prowadzi do pozostawienia części pamięci niezainicjowanej.
Oryginalny opis (angielski, źródło NVD)
In the Linux kernel, the following vulnerability has been resolved: fs/ntfs3: validate dirty page table on log replay Each DIR_PAGE_ENTRY ends in a page_lcns[] array whose length is the on-disk lcns_follow field. check_rstbl() validates the table bookkeeping but never checks that this array fits in the entry, so a crafted lcns_follow lets the v0->v1 conversion memmove and later replay passes run off the entry. Add check_dp_table() to reject, right after check_rstbl(), any entry larger than its size claims via struct_size() (the same expression used to allocate these entries, so the check is overflow-safe by construction). All consumers can then trust lcns_follow as the real capacity. This covers every page_lcns[] access whose index is bounded by the entry itself (the conversion memmove, the HotFix store via find_dp(), and the self-bounded scan loops). Accesses whose index comes from the log record need a separate bound and are handled in a follow-up patch.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

