CVE-2026-120758
ŚrednieCVSS 5.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 3 - wyżej niż 3% wszystkich znanych CVE
Streszczenie
HDF5 do wersji 2.2.0 zawiera podatność dereferencji wskaźnika NULL w H5HL_unprotect() w src/H5HL.c. Spreparowany plik HDF5 może doprowadzić do wywołania H5HL_unprotect() bez obiektu w pamięci podręcznej do odpięcia, a funkcja przekazuje wskaźnik NULL do H5AC_unpin_entry(), co powoduje awarię asercji w kompilacjach debug i dereferencję wskaźnika NULL oraz awarię w kompilacjach release. Atakujący, który nakłoni użytkownika lub aplikację do otwarcia i przejścia złośliwego pliku, może spowodować odmowę usługi.
Ocena ryzyka
Atakujący może spowodować awarię aplikacji przetwarzającej pliki HDF5, prowadząc do odmowy usługi.
Rekomendacja
Zaktualizuj bibliotekę HDF5 do wersji nowszej niż 2.2.0 i unikaj otwierania niezaufanych plików HDF5 do czasu aktualizacji.
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-120757Wysokie
HDF5 do wersji 2.2.0 zawiera podatność przepełnienia bufora sterty podczas odczytu w H5L__extern_traverse() w src/H5Lexternal.c, domyślnym wywołaniu zwrotnym przechodzenia dla linków zewnętrznych. Wywołanie zwrotne lokalizuje nazwę pliku docelowego i ścieżkę obiektu w danych użytkownika linku za pomocą strlen() bez walidacji bufora względem jego rozmiaru (udata_size, oznaczony jako nieużywany). Spreparowany plik HDF5 zawierający link zewnętrzny, którego dane nie są zakończone znakiem NULL lub są zbyt krótkie, aby pomieścić oba ciągi, powoduje odczyt poza końcem bufora sterty udata, a wskaźnik ścieżki obiektu może również wskazywać poza bufor. Przepełnienie jest nieograniczone i trwa do napotkania bajtu zerowego. Podatność jest wyzwalana podczas przechodzenia złośliwego linku, na przykład podczas otwierania obiektu przez niego. Atakujący, który nakłoni użytkownika lub aplikację do dostępu do spreparowanego pliku, może spowodować odmowę usługi, a sąsiednie zawartości sterty mogą zostać włączone do nazwy pliku zewnętrznego lub ścieżki obiektu, którą biblioteka próbuje otworzyć.
- CVE-2026-120756Średnie
HDF5 do wersji 2.2.0 zawiera podatność heap buffer over-read w funkcji H5O__chunk_deserialize() w pliku src/H5Ocache.c. Podczas dekodowania komunikatów nagłówka obiektu rozmiar komunikatu jest sprawdzany względem końca obrazu chunka, zanim zostanie zdekodowana reszta nagłówka komunikatu, przez co spreparowany plik HDF5 może spowodować odczyt poza alokacją heap podczas H5Fopen(). Atakujący, który nakłoni użytkownika lub aplikację do otwarcia złośliwego pliku, może wywołać odmowę usługi lub ograniczone ujawnienie pamięci procesu.
- CVE-2026-120755Średnie
Biblioteka HDF5 do wersji 2.2.0 zawiera podatność out-of-bounds read w funkcji H5Z__filter_szip() w pliku src/H5Zszip.c. Podczas dekodowania fragmentu skompresowanego szipem funkcja odejmuje 4-bajtowy nagłówek długości od długości fragmentu bez sprawdzenia, czy fragment ma co najmniej 4 bajty, co przy skróconym lub uszkodzonym fragmencie powoduje zawinięcie obliczeń i odczyt poza bufor. Atakujący może wywołać odmowę usługi, jeśli użytkownik lub aplikacja odczyta zbiór danych ze spreparowanego pliku HDF5; dotyczy to tylko kompilacji z obsługą szip.
- CVE-2026-120754Niskie
HDF5 do wersji 2.2.0 zawiera podatność odczytu niezainicjalizowanej pamięci w funkcji H5Z__filter_scaleoffset() w pliku src/H5Zscaleoffset.c. Ścieżka dekodowania waliduje odczyty względem rozmiaru bufora chunka, a nie liczby bajtów faktycznie odczytanych z pliku, przez co obcięty chunk przechodzi kontrole granic i jest dekompresowany z niezainicjalizowanej części alokacji, ujawniając niepowiązane dane heap jako dane zbioru danych. Problem nie jest wykrywany przez AddressSanitizer, ponieważ odczyty pozostają w granicach alokacji, i wynika z niekompletnej poprawki dla CVE-2026-19029.
- CVE-2026-120689Średnie
HDF5 do wersji 2.2.0 zawiera podatność niekontrolowanej rekurencji w funkcji H5B__iterate_helper() w pliku src/H5B.c. Podczas iteracji drzewa B w wersji 1 funkcja nie sprawdza, czy poziom węzła potomnego odpowiada oczekiwanemu poziomowi, co pozwala na obejście sprawdzenia i spowodowanie nieograniczonej rekurencji, prowadzącej do wyczerpania stosu i awarii. Atakujący może wywołać to poprzez otwarcie spreparowanego pliku HDF5 i wywołanie H5Gget_info() lub H5Gget_num_objs() na grupie.
Oryginalny opis (angielski, źródło NVD)
HDF5 through 2.2.0 contains a NULL pointer dereference vulnerability in H5HL_unprotect() in src/H5HL.c. H5HL_protect() pins a single metadata cache entry for a local heap, either the heap prefix or the separate data block, and H5HL_unprotect() unpins it on the final unprotect. When the metadata cache destroys a corrupted local heap entry, H5HL__prfx_dest() unlinks it from the heap by setting heap->prfx or heap->dblk to NULL. A crafted HDF5 file can therefore reach H5HL_unprotect() with no cached object to unpin, and the function passes the NULL pointer to H5AC_unpin_entry(). This causes an assertion failure in debug builds and a NULL pointer dereference and crash in release builds. An attacker who can get a user or application to open and traverse a malicious file can cause a denial of service.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

