CVE-2026-89615
WysokieCVSS 8.4Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 4 - wyżej niż 4% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Atakujący może zamontować spreparowany obraz NTFS, powodując przepełnienie bufora w jądrze i potencjalną awarię systemu lub wykonanie kodu.
Rekomendacja
Zaktualizuj jądro Linux do wersji zawierającej funkcję dp_range_ok() odrzucającą rekordy, których zakres nie mieści się we wpisie.
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-89617Wysokie
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.
- 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-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: bound page_lcns[] index by the log record The copy_lcns loop and the redo shorten loop index page_lcns[] at j + i, where i runs up to the log record's lcns_follow. That count is checked only against the record's own length, not the target entry, so check_dp_table() (which validates the entry's lcns_follow) does not cover it: the copy_lcns entry may even be freshly allocated after that check, and find_dp() bounds j but not i. A crafted record thus overflows page_lcns[] of an otherwise valid entry. Add dp_range_ok() and reject, before each loop, any record whose run does not fit the entry. These are the only two page_lcns[] accesses indexed by the record rather than the entry, so together with the entry validation every access is now bounded. [[email protected]: original patch contained changes to the problem already handled, applied partly]
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

