Podatności OpenImageIO
20 znanych podatności CVE w OpenImageIO, przetłumaczonych i ocenionych.
- 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.
- CVE-2026-63638Wysokie
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, specjalnie spreparowany obraz Cineon może deklarować nieobsługiwaną głębię bitową 26. Funkcja cineoninput::open() mapuje ją na 32-bitowy specyfikator obrazu, ale libcineon mapuje nieobsługiwaną głębię na 8-bajtową wartość, więc cineoninput::read_native_scanline() powoduje zapis danych kontrolowanych przez atakującego poza bufor wywołującego (4 bajty na piksel), 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.
- CVE-2026-63635Średnie
W OpenImageIO przed wersjami 3.0.21.0, 3.1.16.0 i 3.2.0.3-beta1 spreparowany plik PSD z nieprawidłowym color_mode omija normalną walidację, gdy włączone jest oiio:rawcolor lub psd:rawdata. Funkcja psdinput::setup() używa wartości kontrolowanej przez atakującego do indeksowania stałych tablic trybów kolorów, powodując globalny odczyt poza granicami i potencjalnie fałszywą alokację.
- CVE-2026-63422Wysokie
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, prawidłowy kafelkowy obraz OpenEXR, którego szerokość nie jest wielokrotnością szerokości kafelka, może wywołać przepełnienie przy odczycie częściowego prostokąta krawędziowego. Funkcja openexrinput::read_native_tiles() kopiuje każdy wiersz do bufora wywołującego, używając dopełnionego całego kafelka scanline_stride zamiast user_scanline_bytes dla żądanego prostokąta, 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.
- CVE-2026-63420Średnie
W OpenImageIO przed wersjami 3.0.21.0, 3.1.16.0 i 3.2.0.3-beta1 indeksowany plik PSD z metadanymi przezroczystości tworzy mniej buforów channel_buffers niż wartość spec.nchannels reklamowana przez ścieżkę rawcolor. Gdy włączone jest oiio:rawcolor lub psd:rawdata, funkcja psdinput::read_native_scanline() przekazuje spec.nchannels do psdinput::interleave_row(), co indeksuje poza channel_buffers.
- CVE-2026-63419Wysokie
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.
- CVE-2026-59956Średnie
W OpenImageIO przed wersjami 3.0.20.0, 3.1.15.0 i 3.2.0.3-beta1 nieskompresowany 16-bitowy obraz IFF z buforem Z powoduje, że iffinput::readimg() alokuje tymczasową linię skanowania na podstawie m_header.rgba_count, ale kopiuje z niej przy użyciu m_header.pixel_bytes(), którego krok obejmuje również bajty bufora Z. Zbyt duże memcpy odczytuje poza tymczasowy bufor sterty i kopiuje sąsiednią pamięć do obrazu wyjściowego.
- CVE-2026-59181Średnie
W OpenImageIO przed wersjami 3.0.20.0, 3.1.15.0 i 3.2.0.3-beta1 spreparowany plik Cineon może dostarczyć wartość numberofelements większą niż maksimum formatu wynoszące osiem. Funkcja cineoninput::open() używa tej niekontrolowanej wartości jako granicy pętli podczas wypełniania stałej tablicy strings[8], zapisując wskaźniki poza buforem stosu i w sąsiedni stan.
- CVE-2026-59156Średnie
W OpenImageIO przed wersjami 3.0.20.0, 3.1.15.0 i 3.2.0.3-beta1 spreparowany strumień FITS zawierający kolejne 2880-bajtowe bloki nagłówka bez obowiązkowego słowa kluczowego END powoduje, że fitsinput::read_fits_header() wywołuje się rekurencyjnie bez ograniczenia głębokości. Powtarzające się parsowanie rekurencyjne wyczerpuje stos aplikacji.
- CVE-2026-50291Średnie
OpenImageIO przed wersjami 3.0.16.0 i 3.1.11.0 zawiera podatność w obsłudze plików BMP. Przetwarzanie spreparowanego pliku BMP przez oiiotool lub aplikację korzystającą z OpenImageIO może doprowadzić do obsługi palety BMP z pustą tablicą kolorów w src/bmp.imageio/bmpinput.cpp. Funkcja BmpInput::read_native_scanline wykonuje wtedy nieprawidłowy odczyt palety podczas dekodowania skompresowanego skanliny RLE, co powoduje awarię procesu i odmowę usługi. Problem naprawiono w wersjach 3.0.16.0 i 3.1.11.0.
- CVE-2023-36183Wysokie
Podatność typu przepełnienie bufora w OpenImageIO w wersji 2.4.12.0 i wcześniejszych umożliwia zdalnemu atakującemu wykonanie dowolnego kodu oraz uzyskanie wrażliwych informacji poprzez spreparowany plik przekazywany do funkcji readimg.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

