CVE-2026-63419
WysokieCVSS 7.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 7 - wyżej niż 7% wszystkich znanych CVE
Streszczenie
OpenImageIO to zestaw narzędzi do odczytu, zapisu i manipulacji plikami graficznymi. Przed wersjami 3.0.21.0, 3.1.16.0 i 3.2.0.3-beta1, kafelkowy obraz IFF tylko z buforem Z jest udostępniany z 16-bitowym publicznym specyfikatorem obrazu, podczas gdy dekoder zachowuje 32-bitowy wewnętrzny rozmiar piksela. Funkcja iffinput::read_native_tile() kopiuje zgodnie z m_header.pixel_bytes() zamiast imagespec::tile_bytes(true), a nieudany odczyt może pozostawić m_buf niepusty, więc późniejsze wywołanie kopiuje częściowo zainicjowane dane do zbyt małego bufora, co prowadzi do zapisu poza stertą i uszkodzenia pamięci. Problem naprawiono w wersjach 3.0.21.0, 3.1.16.0 i 3.2.0.3-beta1.
Ocena ryzyka
Przetwarzanie specjalnie spreparowanego obrazu IFF może prowadzić do uszkodzenia pamięci, co może skutkować awarią aplikacji lub potencjalnie wykonaniem dowolnego kodu.
Rekomendacja
Zaktualizuj OpenImageIO do jednej z poprawnych wersji (3.0.21.0, 3.1.16.0 lub 3.2.0.3-beta1). Ogranicz przetwarzanie niezaufanych plików graficznych.
Inne podatności w OpenImageIO
Zobacz wszystkie- CVE-2026-43909Wysokie
W OpenImageIO przed wersjami 3.0.18.0 i 3.1.13.0 występuje przepełnienie 32-bitowej liczby całkowitej w funkcji SwapRGBABytes(), co prowadzi do obliczenia dużego ujemnego przesunięcia wskaźnika podczas przetwarzania obrazów kABGR DPX o dużych wymiarach. To powoduje natychmiastowe awarie oraz odczyty i zapisy poza dozwolonym zakresem pamięci.
- CVE-2026-43908Wysokie
W OpenImageIO przed wersjami 3.0.18.0 i 3.1.13.0 występuje przepełnienie 32-bitowej liczby całkowitej w wyrażeniu indeksu pętli pikseli, co prowadzi do zapisu poza granicami bufora wyjściowego i awarii procesu.
- CVE-2026-43907Wysokie
W OpenImageIO przed wersjami 3.0.18.0 i 3.1.13.0 występuje przepełnienie bufora na stercie spowodowane przez przepełnienie całkowitej liczby całkowitej w funkcji QueryRGBBufferSizeInternal(). Problem ten występuje podczas przetwarzania stworzonych plików obrazów DPX, co prowadzi do zapisu poza przydzielonym buforem.
- CVE-2026-43906Wysokie
OpenImageIO przed wersjami 3.0.18.0 i 3.1.13.0 zawiera podatność na przepełnienie bufora w sterowniku HEIF, co pozwala na zapis poza przydzielonym obszarem pamięci. Może to prowadzić do uszkodzenia pamięci oraz potencjalnego wykonania złośliwego kodu.
- CVE-2026-43905Wysokie
W OpenImageIO przed wersjami 3.0.18.0 i 3.1.13.0 występuje podatność związana z obliczaniem rozmiaru bufora w pliku jpeg2000input.cpp, co prowadzi do przepełnienia sterty. Problem ten występuje, gdy iloczyn wymiarów obrazu przekracza maksymalną wartość dla 32-bitowej arytmetyki, co skutkuje alokacją zbyt małego bufora.
- CVE-2026-43904Wysokie
OpenImageIO przed wersjami 3.0.18.0 i 3.1.13.0 zawiera podatność, która pozwala na przepełnienie sterty do 65535 bajtów w wyniku nieprawidłowego ograniczenia długości uruchomienia w plikach .pic. Problem występuje w kodzie odpowiedzialnym za przetwarzanie RLE.
- CVE-2026-43903Wysokie
OpenImageIO przed wersjami 3.0.18.0 i 3.1.13.0 zawiera podatność w pliku sgiinput.cpp, gdzie użycie OIIO_DASSERT do sprawdzania granic w pętli dekodowania RLE nie działa w wersjach produkcyjnych. W wyniku tego, stworzony plik .sgi z liczbą RLE przekraczającą szerokość linii skanowania powoduje przepełnienie bufora na stercie i awarię programu.
- CVE-2026-67549Wysokie
OpenImageIO to zestaw narzędzi do odczytu, zapisu i manipulacji plikami graficznymi. Przed wersją 3.1.16.0, specjalnie spreparowany 1-bitowy ciągły obraz TIFF w trybie CMYK jest udostępniany przez natywny specyfikator obrazu uint1, więc wywołujący alokuje bufor bitowy. Funkcja tiffinput::read_native_scanline_locked() wywołuje jednak tiffinput::bit_convert() z 8-bitowym wyjściem i zapisuje jeden rozwinięty bajt na wartość do mniejszego bufora, co powoduje zapis poza stertą i uszkodzenie pamięci. Problem naprawiono w wersji 3.1.16.0.
- CVE-2026-65970Średnie
W OpenImageIO przed wersją 3.1.16.0 spreparowany plik TIFF skompresowany ZIP, przetwarzany z włączonym wielowątkowym TIFF, może spowodować, że TIFFInput::read_native_scanlines() zwróci wynik przez ścieżkę błędu, podczas gdy asynchroniczne zadania dekompresji pasków pozostają w kolejce. Ponieważ task_set jest zadeklarowany przed ok i compressed_scratch, przechwycone obiekty są niszczone przed destruktorem task_set, co pozwala zadaniom roboczym używać nieaktualnej pamięci stosu i sterty.
- CVE-2026-65969Średnie
W OpenImageIO przed wersjami 3.0.21.0, 3.1.16.0 i 3.2.0.3-beta1 obcięty plik TGA może pozostawić oczekującą ramkę GIF, która jest przetwarzana podczas zamykania wyjścia. Funkcja gifsplitpalette() oblicza numpixels pomnożone przez szerokość partycji palety w 32-bitowej arytmetyce ze znakiem; duży obraz powoduje przepełnienie tego wyniku pośredniego, uszkadza subpixelsa i prowadzi do odczytu poza granicami bufora podczas budowania palety GIF.
Oryginalny opis (angielski, źródło NVD)
OpenImageIO is a toolset for reading, writing, and manipulating image files of any image file format relevant to VFX / animation. Prior to 3.0.21.0, 3.1.16.0, and 3.2.0.3-beta1, A zbuffer-only tiled iff is exposed with a 16-bit public imagespec while the decoder retains a 32-bit internal pixel size. iffinput::read_native_tile() copies according to m_header.pixel_bytes() rather than imagespec::tile_bytes(true), and a failed read can leave m_buf nonempty so a later call copies partially initialized data into the undersized caller buffer, resulting in a heap out-of-bounds write and memory corruption. The affected implementation is identified by src/iff.imageio/iffinput.cpp, IffInput::read_native_tile(), ImageSpec::tile_bytes(true), m_header.pixel_bytes(), ZBUFFER, and m_buf, which define the relevant source path, functions, state, and trigger. This issue is fixed in versions 3.0.21.0, 3.1.16.0, and 3.2.0.3-beta1.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

