CVE-2026-120757
WysokieCVSS 7.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 4 - wyżej niż 4% wszystkich znanych CVE
Streszczenie
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ć.
Ocena ryzyka
Atakujący może spowodować awarię aplikacji lub potencjalnie ujawnić dane z pamięci, co prowadzi do odmowy usługi i naruszenia poufności.
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-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-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 heap buffer over-read vulnerability in H5L__extern_traverse() in src/H5Lexternal.c, the default traversal callback for external links. The callback locates the target file name and object path within the link’s user data using strlen() without validating the buffer against its stored size (udata_size, which was marked unused). A crafted HDF5 file containing an external link whose data is not NULL-terminated, or is too short to hold both strings, causes strlen() to read past the end of the udata heap buffer, and the derived object path pointer may also point outside the buffer. The overrun is unbounded and continues until a zero byte is found. The flaw is triggered when the malicious link is traversed, for example when opening an object through it. An attacker who can get a user or application to access a crafted file can cause a denial of service, and adjacent heap contents may be incorporated into the external file name or object path the library attempts to open.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

