CVE-2026-19082
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 21 - wyżej niż 21% wszystkich znanych CVE
Streszczenie
Imager w wersjach od 0.45_02 do 1.034 dla Perla może ujawnić sąsiednie bajty sterty poprzez odczyt strlen() z zerowej liczby wpisów ASCII EXIF w copy_string_tags. Atakujący może dostarczyć obraz z takim wpisem, co prowadzi do wycieku danych ze sterty do znacznika exif_*.
Ocena ryzyka
Atakujący może wykorzystać tę podatność do odczytu danych ze sterty, co może prowadzić do ujawnienia poufnych informacji lub dalszych ataków.
Rekomendacja
Zaleca się aktualizację Imager do wersji 1.034 lub nowszej, która zawiera poprawkę eliminującą problem.
Inne podatności w Imager
Zobacz wszystkie- CVE-2026-93019Krytyczne
Wersje Imager dla Perla przed 1.036 kończą proces podczas odczytu pliku TGA z długością mapy kolorów wynoszącą 32768 lub więcej w funkcji tga_palette_read. Długość jest rozpakowywana do typu signed short, przez co wartość 32768 lub większa staje się ujemna, a następnie rzutowana na size_t, co powoduje żądanie alokacji o rozmiarze bliskim SIZE_MAX. Alokacja kończy się niepowodzeniem, a alokator Imager wywołuje exit(3).
- CVE-2026-14454Krytyczne
Podatność w bibliotece Imager dla Perla przed wersją 1.033 polega na błędnym traktowaniu liczników wpisów EXIF IFD jako liczb ze znakiem, co może prowadzić do próby alokacji ogromnego bloku pamięci i awarii procesu. Atakujący może wykorzystać to, tworząc obraz z odpowiednio spreparowanymi danymi EXIF, aby przerwać działanie procesu roboczego.
- CVE-2026-102505Średnie
Imager w wersjach przed 1.037 dla Perla przepełnia bufor sterty podczas pobierania próbek zmiennoprzecinkowych z obrazu z paletą w funkcji i_gsampf_fp. Dla obrazu z paletą funkcja getsamples() z typem "float" alokuje bufor o rozmiarze jednej próbki na piksel i pobiera do niego każdy żądany kanał każdego piksela. Żądanie więcej niż jednego kanału zapisuje poza końcem bufora. Obraz dostarczony przez atakującego kontroluje przepełniane bajty poprzez swoją paletę.
- CVE-2026-102504Wysokie
Imager w wersjach przed 1.037 dla Perla kończy proces podczas odczytu surowego obrazu z wartością raw_datachannels poza zakresem w funkcji i_readraw_wiol. Nic nie sprawdza zakresu raw_datachannels. Bufor linii jest rozmiarowany jako szerokość obrazu razy liczba kanałów bez sprawdzania przepełnienia, więc ujemna lub bardzo duża wartość powoduje nadmierną alokację. Gdy alokacja się nie powiedzie, alokator Imager wywołuje exit(3). Przekazanie niezaufanej wartości raw_datachannels do Imager->read() powoduje nieprzechwytywalne zakończenie procesu.
- CVE-2026-93018Średnie
Wersje Imager dla Perla przed 1.036 ujawniają niezainicjalizowaną pamięć sterty podczas odczytu obrazu paletowego z indeksami pikseli wykraczającymi poza mapę kolorów w funkcjach i_gpix_p i i_glin_p. Paleta jest alokowana bez inicjalizacji, a czytnik TGA zapisuje indeksy pikseli bez sprawdzania ich względem mapy kolorów, co pozwala odczytać lub wyświetlić zawartość wcześniejszej pamięci sterty.
- CVE-2026-73638Średnie
Imager w wersjach od 0.45_02 przed 1.035 dla Perla odczytuje dane poza blokiem EXIF poprzez niekontrolowane przesunięcia początkowe w funkcji tiff_load_ifd. Funkcja tiff_load_ifd() waliduje dane wpisu IFD, sprawdzając, czy suma entry->offset + entry->size mieści się w bloku EXIF, ale nigdy nie sprawdza samego przesunięcia początkowego. Gdy suma nie jest rzeczywistym końcem danych, sprawdzenie przechodzi, mimo że wpis zaczyna się poza blokiem. Do wersji 1.032 pole entry->offset jest zwykłym int, więc na typowych implementacjach dopełnienia do dwóch offset z ustawionym najstarszym bitem staje się ujemny i suma może wrócić do wnętrza bloku. Od wersji 1.033 pole jest typu size_t, a dodawanie zawija się tylko tam, gdzie size_t ma 32 bity. Własne przesunięcie początkowe IFD jest sprawdzane w ten sam sposób i zawija się tam, gdzie unsigned long ma 32 bity, co obejmuje 64-bitowy Windows. Każdy wywołujący Imager->read() na dostarczonym przez atakującego obrazie może otrzymać tagi EXIF zawierające bajty spoza bloku lub spowodować awarię procesu.
- CVE-2026-13705Wysokie
W bibliotece Imager dla Perla przed wersją 1.032 występuje podatność polegająca na odczycie poza dozwolonym obszarem sterty (heap out-of-bounds read) w module Imager::File::SGI. Problem dotyczy funkcji read_rgb_16_rle, która nieprawidłowo sprawdza liczbę pikseli w przebiegu RLE, co prowadzi do odczytu poza buforem. Atakujący może wykorzystać tę podatność, dostarczając spreparowany obraz SGI, co może spowodować awarię procesu.
Oryginalny opis (angielski, źródło NVD)
Imager versions from 0.45_02 before 1.034 for Perl may expose adjacent heap bytes via strlen() over-read from zero-count ASCII EXIF entries in copy_string_tags. copy_string_tags() computes an ASCII EXIF tag's length as `entry->size - 1` to strip the trailing NUL. A zero-count ASCII entry sets `entry->size` to 0, and the derived length reaches i_tags_add() as -1, which is interpreted as a request to call strlen(), scanning past the entry to the next NUL and copying those bytes into the tag. JPEG reaches this path via im_decode_exif(), as does the separate Imager::File::WEBP distribution, which is fixed by upgrading Imager. Any caller of Imager->read() on an attacker-supplied image with such an entry may receive an exif_* tag holding adjacent heap bytes instead of an empty string.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

