CVE-2026-120756
ŚrednieCVSS 6.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 7 - wyżej niż 7% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Otwarte spreparowanego pliku HDF5 może doprowadzić do awarii aplikacji (DoS) lub wycieku fragmentów pamięci procesu. Ryzyko dotyczy systemów przetwarzających niezaufane pliki HDF5, np. w pipeline'ach analitycznych lub naukowych.
Rekomendacja
Zaktualizuj bibliotekę HDF5 do wersji zawierającej poprawkę lub ogranicz przetwarzanie niezaufanych plików HDF5. W miarę możliwości uruchamiaj przetwarzanie plików w izolowanym środowisku o ograniczonych uprawnieniach.
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-120758Średnie
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.
- 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-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 heap buffer over-read vulnerability in H5O__chunk_deserialize() in src/H5Ocache.c. When decoding object header messages, the declared message size is checked against the end of the chunk image before the remainder of the message header (flags, and for version 2 object headers, the optional creation index) has been decoded. Because the message body begins after these fields, a message can start up to four bytes further into the chunk than the size check accounts for. A crafted HDF5 file can declare a message size that passes the check but extends past the end of the chunk image, causing the message’s decode callback, for example H5O__mtime_new_decode() in src/H5Omtime.c, to read beyond the heap allocation. The flaw is reachable during H5Fopen() on a crafted file. An attacker who can get a user or application to open a malicious file can cause a denial of service or limited disclosure of process memory.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

