Katalog CVE

CVE-2026-89782

WysokieCVSS 8.4
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.21%

Percentyl 11 - wyżej niż 11% wszystkich znanych CVE

Streszczenie

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).

Ocena ryzyka

Atakujący może doprowadzić do uszkodzenia pamięci jądra, awarii systemu (panic) lub potencjalnie wykonania dowolnego kodu z uprawnieniami jądra poprzez zamontowanie spreparowanego obrazu NTFS. Wymaga to jedynie możliwości zamontowania systemu plików, co w wielu środowiskach jest dostępne dla użytkowników bez uprawnień roota.

Rekomendacja

Zaktualizuj jądro Linux do wersji zawierającej poprawkę odrzucającą żądania rozrostu tablicy restartu powyżej U16_MAX wpisów w funkcji extend_rsttbl(). Do czasu aktualizacji rozważ ograniczenie możliwości montowania niezaufanych obrazów NTFS.

Inne podatności w Linux kernel (fs/ntfs3)

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

In the Linux kernel, the following vulnerability has been resolved: fs/ntfs3: reject restart table growth beyond U16_MAX entries During $LogFile replay, log_replay() indexes the transaction table by the transact_id taken from the log record header. check_log_rec() only verifies that transact_id is non-zero and properly aligned, not its magnitude, so a crafted image can request an arbitrarily large index. alloc_rsttbl_from_idx() grows the table to cover that index via extend_rsttbl(), which passes the new entry count to init_rsttbl(): rt = init_rsttbl(esize, used + add); used + add is computed as u32 but init_rsttbl() takes a u16, and the count is stored in struct RESTART_TABLE as a __le16. When used + add exceeds U16_MAX it is truncated, init_rsttbl() allocates a table far smaller than the index requires, and alloc_rsttbl_from_idx() then dereferences and writes at the original, untruncated offset -- an out-of-bounds access past the allocation, reachable by mounting a crafted NTFS image. BUG: KASAN: use-after-free in alloc_rsttbl_from_idx (fs/ntfs3/fslog.c:950) Read of size 4 at addr ffff8880327ffff8 by task exploit alloc_rsttbl_from_idx (fs/ntfs3/fslog.c:950) log_replay (fs/ntfs3/fslog.c:4562) ntfs_loadlog_and_replay (fs/ntfs3/fsntfs.c:324) ntfs_fill_super (fs/ntfs3/super.c:1393) get_tree_bdev_flags vfs_get_tree path_mount __x64_sys_mount A restart table is limited to U16_MAX entries by its __le16 count, so a larger growth request is invalid input. Reject it in extend_rsttbl(); all callers already handle a NULL return.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS