CVE-2026-42216
KrytyczneCVSS 9.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 37 - wyżej niż 37% wszystkich znanych CVE
Streszczenie
W bibliotece OpenEXR w wersjach od 3.0.0 do 3.2.9, od 3.3.0 do 3.3.11 oraz od 3.4.0 do 3.4.11 wykryto podatność w funkcji IDManifest::init(). Podczas rekonstrukcji ciągów znaków z reprezentacji skompresowanej prefiksowo, kod odczytuje bajty bez sprawdzenia, czy bieżący ciąg ma co najmniej dwa bajty, co może prowadzić do odczytu poza zakresem.
Ocena ryzyka
Podatność może umożliwić atakującemu odczytanie danych poza przydzielonym buforem, co potencjalnie prowadzi do ujawnienia wrażliwych informacji lub destabilizacji systemu.
Rekomendacja
Należy niezwłocznie zaktualizować bibliotekę OpenEXR do wersji 3.2.9, 3.3.11 lub 3.4.11, w zależności od używanej gałęzi.
Inne podatności w OpenEXR
Zobacz wszystkie- CVE-2017-12596Wysokie
W OpenEXR 2.2.0, specjalnie przygotowany obraz powoduje nadmierne odczytywanie bufora w funkcji hufDecode w pliku IlmImf/ImfHuf.cpp podczas wykonywania exrmaketiled. Może to prowadzić do odmowy usługi lub innych nieokreślonych skutków.
- CVE-2017-9115Wysokie
W OpenEXR 2.2.0 występuje nieprawidłowe zapisanie danych o rozmiarze 2 w funkcji operatora = w pliku half.h, co może prowadzić do awarii aplikacji lub wykonania dowolnego kodu.
- CVE-2017-9113Wysokie
W OpenEXR 2.2.0 występuje nieprawidłowe zapisanie danych o rozmiarze 1 w funkcji bufferedReadPixels w pliku ImfInputFile.cpp, co może prowadzić do awarii aplikacji lub wykonania dowolnego kodu.
- CVE-2017-9111Wysokie
W OpenEXR 2.2.0 występuje nieprawidłowe zapisanie danych o rozmiarze 8 w funkcji storeSSE w pliku ImfOptimizedPixelReading.h, co może prowadzić do awarii aplikacji lub wykonania dowolnego kodu.
- CVE-2026-42217Krytyczne
OpenEXR w wersjach od 3.0.0 do przed 3.2.9, 3.3.0 do przed 3.3.11 oraz 3.4.0 do przed 3.4.11 ma problem z funkcją readVariableLengthInteger(), która dekoduje zmienną długość liczby całkowitej z niezaufanego wejścia EXR bez ograniczenia liczby przesunięć. Po wystarczającej liczbie bajtów kontynuacji, kod wykonuje przesunięcie w lewo o 70 na 64-bitowej wartości, co prowadzi do nieokreślonego zachowania.
- CVE-2026-88384Średnie
OpenEXR 3.4.14 zawiera podatność na dereferencję pustego wskaźnika w ścieżce parsowania atrybutów C++. Specjalnie spreparowany plik EXR zawierający atrybut nieznanego typu z dataSize ustawionym na zero powoduje utworzenie nieprzezroczystego atrybutu z pustym wskaźnikiem packed_data. Konstruktor OpaqueAttribute przekazuje ten pusty wskaźnik do memcpy() bez walidacji warunku zerowego rozmiaru, co prowadzi do niezdefiniowanego zachowania i zakończenia procesu.
- CVE-2026-68515Wysokie
OpenEXR przed wersjami 3.2.11, 3.3.13 i 3.4.14 zawiera podatność w narzędziu exrmultiview, które może zapisywać poza stertą podczas łączenia dwóch dostarczonych przez atakującego, indywidualnie poprawnych plików EXR, gdy unia dataWindow nie jest wyrównana do próbkowania kanałów jednego widoku. Prowadzi to do zapisu poza granicami sterty.
- CVE-2026-68514Średnie
PyOpenEXR w wersjach 3.3.0-3.3.12 i 3.4.0-3.4.13 ma podatność na zapis poza stertą podczas odczytu spreparowanego pliku EXR z głębokimi scanline'ami. Specjalnie skonstruowany plik z kanałem 'left' i warstwowymi kanałami RGB może spowodować przepełnienie bufora i awarię.
- CVE-2026-68513Wysokie
OpenEXR w wersjach 3.3.0 do 3.3.12 i 3.4.0 do 3.4.13 zawiera przepełnienie bufora sterty w PyOpenEXR, wywoływane przez kolizję nazw kanałów między dosłownymi a prefiksowanymi kanałami RGB. Specjalnie spreparowany plik EXR może spowodować zapis poza granicami tablicy NumPy podczas dekodowania pikseli.
- CVE-2026-59981Wysokie
OpenEXR w wersjach do 3.2.10, 3.3.0 do 3.3.12 i 3.4.0 do 3.4.13 zawiera podatność w bibliotece OpenEXRUtil, która zwraca wskaźnik poza zakresem z API SampleCountChannel::row() dla obrazów głębokich z niezerowym początkiem dataWindow. Może to prowadzić do odczytu poza zakresem, co może spowodować awarię procesu lub ujawnienie danych z pamięci.
Oryginalny opis (angielski, źródło NVD)
OpenEXR provides the specification and reference implementation of the EXR file format, an image storage format for the motion picture industry. From versions 3.0.0 to before 3.2.9, 3.3.0 to before 3.3.11, and 3.4.0 to before 3.4.11, IDManifest::init() reconstructs strings from a prefix-compressed representation. If the previous string is longer than 255 bytes, the next string is expected to begin with a 2-byte prefix length. The code reads stringList[i][0] and stringList[i][1] without checking that the current string has at least two bytes. This issue has been patched in versions 3.2.9, 3.3.11, and 3.4.11.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

