CVE-2026-67549
WysokieCVSS 7.6Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 29 - wyżej niż 29% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Przetwarzanie złośliwego pliku TIFF może prowadzić do uszkodzenia pamięci, co może skutkować awarią aplikacji lub potencjalnie wykonaniem dowolnego kodu.
Rekomendacja
Zaktualizuj OpenImageIO do wersji 3.1.16.0 lub nowszej. 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-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.
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.1.16.0, A crafted 1-bit contiguous cmyk tiff is exposed through a native uint1 imagespec, so callers allocate a bit-packed buffer. tiffinput::read_native_scanline_locked() nevertheless invokes tiffinput::bit_convert() with 8-bit output and writes one expanded byte per value into that smaller buffer, resulting in a heap out-of-bounds write and memory corruption. The affected implementation is identified by src/tiff.imageio/tiffinput.cpp, TIFFInput::bit_convert(), TIFFInput::read_native_scanline_locked(), PHOTOMETRIC_SEPARATED, 1-bit CMYK, and native uint1 ImageSpec, which define the relevant source path, functions, state, and trigger. This issue is fixed in 3.1.16.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

