CVE-2026-50291
ŚrednieCVSS 5.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 9 - wyżej niż 9% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Podatność umożliwia zdalnemu atakującemu spowodowanie awarii procesu poprzez dostarczenie specjalnie spreparowanego pliku BMP, co prowadzi do odmowy usługi i może zakłócić działanie aplikacji przetwarzających obrazy.
Rekomendacja
Zaleca się aktualizację OpenImageIO do wersji 3.0.16.0 lub 3.1.11.0, które zawierają poprawkę. Należy również unikać przetwarzania niezaufanych plików BMP do czasu aktualizacji.
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 versions 3.0.16.0 and 3.1.11.0, processing a crafted BMP file through oiiotool or an application linked to OpenImageIO can reach BMP palette handling in src/bmp.imageio/bmpinput.cpp with an empty color table. BmpInput::read_native_scanline then performs an invalid palette read while decoding an RLE-compressed scanline, causing a process crash and denial of service. This issue is fixed in versions 3.0.16.0 and 3.1.11.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

