CVE-2026-19028
ŚrednieCVSS 6.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 3 - wyżej niż 3% wszystkich znanych CVE
Streszczenie
Podatność w HDF5 do wersji 2.3.0 w funkcji H5Z__filter_fletcher32 w pliku H5Zfletcher32.c. Funkcja oblicza długość danych do sumy kontrolnej, odejmując 4-bajtowy rozmiar sumy kontrolnej od rozmiaru bufora wejściowego bez sprawdzenia, czy bufor ma co najmniej 4 bajty, co pozwala na niedomiar size_t. Atakujący może spowodować odmowę usługi (masywne odczyty poza zakresem i awarię aplikacji) poprzez spreparowany plik HDF5 z fragmentem filtrowanym Fletcher32 mniejszym niż 4 bajty, wyzwalanym przez H5Dread, np. przez narzędzia h5ls lub h5dump.
Ocena ryzyka
Atakujący może spowodować awarię aplikacji (odmowa usługi) poprzez dostarczenie specjalnie spreparowanego pliku HDF5, co może prowadzić do przerwania działania usług.
Rekomendacja
Zaktualizuj HDF5 do najnowszej wersji, jeśli dostępna. Ogranicz przetwarzanie niezaufanych plików HDF5.
Inne podatności w HDF5
Zobacz wszystkie- CVE-2017-17509Wysokie
W HDF5 w wersji 1.10.1 występuje podatność na zapis poza granicami w funkcji H5G__ent_decode_vec w pliku H5Gcache.c w bibliotece libhdf5.a. Na przykład, użycie narzędzia h5dump może spowodować awarię lub inne nieokreślone skutki, gdy otworzy się spreparowany plik hdf5.
- CVE-2016-4333Wysokie
Biblioteka HDF5 w wersji 1.8.16 ma lukę, która pozwala na modyfikację wskaźnika pętli inicjalizującej tablicę, co może prowadzić do wskazywania poza granice tablicy. Wartość używana do alokacji przestrzeni pochodzi z pliku, co stwarza ryzyko manipulacji przez atakującego.
- CVE-2016-4332Wysokie
Biblioteka HDF5 w wersji 1.8.16 nie sprawdza, czy określone typy wiadomości obsługują dany znacznik, co prowadzi do rzutowania struktury na alternatywną strukturę i przypisywania wartości do pól, które nie są obsługiwane przez typ wiadomości. Może to skutkować wykonaniem kodu w kontekście biblioteki.
- CVE-2016-4331Wysokie
Podczas dekodowania danych z zestawu danych zakodowanego przy użyciu dekodowania H5Z_NBIT, biblioteka HDF5 w wersji 1.8.16 nie zapewnia, że precyzja mieści się w granicach rozmiaru, co prowadzi do możliwości wykonania dowolnego kodu.
- CVE-2016-4330Wysokie
W bibliotece HDF5 w wersji 1.8.16 występuje błąd polegający na braku sprawdzenia, czy liczba wymiarów tablicy odczytanej z pliku mieści się w granicach przydzielonej dla niej przestrzeni. Może to prowadzić do przepełnienia bufora na stercie, co potencjalnie umożliwia wykonanie dowolnego kodu.
- CVE-2026-19027Średnie
Podatność w HDF5 do wersji 2.3.0 w funkcjach H5Z__nbit_decompress_one_byte, H5Z__nbit_decompress_one_nooptype i H5Z__nbit_decompress_one_atomic w pliku H5Znbit.c. Funkcje przesuwają indeks odczytu w buforze skompresowanego fragmentu bez ograniczenia go do rzeczywistego rozmiaru bufora. Atakujący może spowodować odczyt poza zakresem sterty, a w ograniczonych przypadkach ujawnienie sąsiedniej pamięci sterty do wartości zestawu danych, poprzez spreparowany plik HDF5, którego parametry filtra N-Bit opisują więcej zdekompresowanych danych niż faktycznie zawiera skompresowany fragment, wyzwalany przez H5Dread, np. przez narzędzia h5ls lub h5repack.
- CVE-2026-19026Średnie
Funkcja H5Z__filter_nbit w pliku H5Znbit.c w HDF5 do wersji 2.3.0 włącznie dereferencjonuje cd_values[0] do cd_values[4] bez walidacji, czy cd_values nie jest NULL-em lub czy cd_nelmts jest co najmniej 5 (stały rozmiar nagłówka filtra). Pozwala to atakującym na spowodowanie odmowy usługi przez spreparowany plik HDF5, który przechowuje komunikat potoku filtra N-Bit z zerowymi wartościami client-data, otwierany i odczytywany przez H5Dread, np. przez narzędzia h5ls lub h5repack.
- CVE-2026-19025Średnie
Funkcja H5O__layout_decode w pliku H5Olayout.c w HDF5 do wersji 2.3.0 włącznie nie waliduje, czy przechowywana wymiarowość układu chunków dla zestawu danych chunked odpowiada rangowi dataspace, gdy otwierany jest istniejący zestaw danych, podczas gdy ta kontrola jest wykonywana tylko podczas tworzenia zestawu danych. Pozwala to atakującym na spowodowanie odmowy usługi (dzielenie przez zero i awaria aplikacji w H5S__hyper_iter_get_seq_list w src/H5Shyper.c) przez spreparowany plik HDF5 z niedopasowanymi rangami chunk/dataspace, otwierany i odczytywany przez H5Dopen2 i H5Dread, np. przez narzędzie h5repack.
- CVE-2026-19024Wysokie
Podatność na dereferencję pustego wskaźnika w funkcji H5Pget_fill_value w HDF5 przed wersją 2.3.0. Atakujący może spowodować odmowę usługi poprzez zestaw danych z flagą 'defined' i ujemnym rozmiarem pola.
- CVE-2026-19023Średnie
Niebezpieczne wyłuskanie wskaźnika w funkcji render_bin_output w narzędziu h5dump w HDF5 przed wersją 2.3.0 umożliwia atakującym spowodowanie odmowy usługi przez zmienną długość łańcucha znaków z więcej niż jednym elementem zrzucanym w trybie binarnym, co psuje obliczenia kroku dla elementu i powoduje odczyt kolejnych elementów z nieprawidłowego przesunięcia i wyłuskanie jako wskaźnika.
Oryginalny opis (angielski, źródło NVD)
H5Z__filter_fletcher32 in H5Zfletcher32.c in HDF5 through 2.3.0 computes the data length to checksum by subtracting the 4-byte trailing checksum size from the input buffer size without checking that the buffer is at least 4 bytes, allowing a size_t underflow. This allows attackers to cause a denial of service (massively out-of-bounds read and application crash in H5_checksum_fletcher32) via a crafted HDF5 file with a Fletcher32-filtered chunk smaller than 4 bytes, triggered via H5Dread, e.g. by the h5ls or h5dump tools.

