CVE-2026-45858
ŚrednieCVSS 5.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 5 - wyżej niż 5% wszystkich znanych CVE
Streszczenie
W jądrze Linux w systemie plików ext4 wykryto podatność związaną z nieprawidłowym zerowaniem zakresów alokacji podczas dzielenia dużego niezainicjalizowanego zakresu (extent). W pewnych warunkach, gdy operacja dzielenia zakresu nie powiedzie się z powodu braku miejsca, może dojść do pozostawienia nieaktualnych danych (stale data) w zapisanym zakresie, co narusza integralność danych.
Ocena ryzyka
Podatność może prowadzić do odczytu nieaktualnych lub uszkodzonych danych przez użytkowników lub procesy, co stanowi ryzyko dla poufności i integralności danych przechowywanych w systemie plików ext4.
Rekomendacja
Zaleca się natychmiastową aktualizację jądra Linux do wersji zawierającej poprawkę (commit z rozwiązaniem problemu). Należy monitorować oficjalne biuletyny bezpieczeństwa dystrybucji Linux w celu uzyskania odpowiedniego łatania.
Inne podatności w Linux kernel, ext4 filesystem
Zobacz wszystkie- CVE-2026-43067Krytyczne
W jądrze Linuxa rozwiązano podatność w systemie plików ext4, która dotyczyła obsługi przepełnienia podczas wyszukiwania bloków dla plików z mapowaniem pośrednim. Zmiana w kodzie ogranicza alokację bloków do numerów mieszczących się w 32-bitowych numerach bloków.
- CVE-2026-45985Średnie
W jądrze systemu Linux zidentyfikowano podatność w systemie plików ext4, która występuje podczas alokacji bloków w trybie DIO. Problem polega na tym, że niewłaściwe ustawienie flagi EXT4_GET_BLOCKS_CONVERT może prowadzić do problemów z danymi przestarzałymi.
- CVE-2026-45942Wysokie
W jądrze Linuxa zidentyfikowano i naprawiono problem z niespójnością bitmapy w systemie plików ext4, który występował podczas testów obciążeniowych z użyciem dużych stron pamięci. Problem ten był spowodowany warunkiem wyścigu między migracją stron a modyfikacją bitmapy.
- CVE-2026-45920Wysokie
W jądrze systemu Linux zidentyfikowano podatność związaną z podwójnym dekrementowaniem licznika brudnych klastrów podczas zamykania systemu plików ext4. Problem ten prowadzi do ostrzeżenia o wartości -1 dla licznika brudnych klastrów, co wskazuje na błąd w ścieżce obsługi błędów.
- CVE-2026-45912Średnie
W jądrze systemu Linux zidentyfikowano podatność w systemie plików ext4, która dotyczy buforowania zakresów podczas procesu ich dzielenia. Problemy z buforowaniem mogą prowadzić do pozostawienia nieaktualnych zakresów w drzewie statusów, co skutkuje błędami w zarządzaniu przestrzenią.
- CVE-2026-45899Średnie
W jądrze Linux w systemie plików ext4 wykryto podatność polegającą na tym, że w przypadku niepowodzenia dzielenia zakresu (extent) w drzewie stanu zakresów mogą pozostać nieaktualne wpisy. Prowadzi to do niespójności danych.
- CVE-2024-49960Wysokie
W jądrze Linuxa naprawiono podatność w systemie plików ext4, która dotyczyła użycia po zwolnieniu pamięci (use-after-free) w przypadku nieudanej próby montowania. Problem polegał na tym, że timer s_err_report pozostawał aktywny, co mogło prowadzić do błędów I/O.
- CVE-2024-49889Wysokie
W jądrze Linuxa zidentyfikowano podatność w systemie plików ext4, która może prowadzić do błędu use-after-free w funkcji ext4_ext_show_leaf(). Problem ten występuje, gdy wskaźnik 'path' jest używany po jego zwolnieniu lub ponownym przydzieleniu, co może prowadzić do nieprzewidywalnych zachowań systemu.
Oryginalny opis (angielski, źródło NVD)
In the Linux kernel, the following vulnerability has been resolved: ext4: don't zero the entire extent if EXT4_EXT_DATA_PARTIAL_VALID1 When allocating initialized blocks from a large unwritten extent, or when splitting an unwritten extent during end I/O and converting it to initialized, there is currently a potential issue of stale data if the extent needs to be split in the middle. 0 A B N [UUUUUUUUUUUU] U: unwritten extent [--DDDDDDDD--] D: valid data |<- ->| ----> this range needs to be initialized ext4_split_extent() first try to split this extent at B with EXT4_EXT_DATA_ENTIRE_VALID1 and EXT4_EXT_MAY_ZEROOUT flag set, but ext4_split_extent_at() failed to split this extent due to temporary lack of space. It zeroout B to N and mark the entire extent from 0 to N as written. 0 A B N [WWWWWWWWWWWW] W: written extent [SSDDDDDDDDZZ] Z: zeroed, S: stale data ext4_split_extent() then try to split this extent at A with EXT4_EXT_DATA_VALID2 flag set. This time, it split successfully and left a stale written extent from 0 to A. 0 A B N [WW|WWWWWWWWWW] [SS|DDDDDDDDZZ] Fix this by pass EXT4_EXT_DATA_PARTIAL_VALID1 to ext4_split_extent_at() when splitting at B, don't convert the entire extent to written and left it as unwritten after zeroing out B to N. The remaining work is just like the standard two-part split. ext4_split_extent() will pass the EXT4_EXT_DATA_VALID2 flag when it calls ext4_split_extent_at() for the second time, allowing it to properly handle the split. If the split is successful, it will keep extent from 0 to A as unwritten.

