CVE-2026-73638 in Imager
Сводка
по VulDB • 18.09.2026
В версиях библиотеки Imager от 0.45_02 до 1.035 для Perl происходит чтение за пределами блока EXIF из-за непроверенных начальных смещений в функции tiff_load_ifd.
Функция `tiff_load_ifd()` проверяет данные записи IFD, убеждаясь, что сумма `entry->offset + entry->size` остается внутри блока EXIF, но никогда не проверяет само начальное смещение (start offset). Если эта сумма не является реальным концом данных, проверка проходит успешно, даже если запись начинается вне блока.
До версии 1.032 поле `entry->offset` имеет тип plain int, поэтому на обычных реализациях с дополнением до двух (`two's-complement`) смещение со старшим битом, установленным в единицу, преобразуется в отрицательное значение, и сумма может оказаться обратно внутри блока. Начиная с версии 1.033 это поле имеет тип `size_t`, и переполнение (wrap) происходит только там, где `size_t` равен 32 битам. Собственное начальное смещение IFD проверяется аналогичным образом и подвержено переполнению там, где `unsigned long` равен 32 битам, что включает в себя 64-битные системы Windows.
Любой вызывающий объект Imager->read(), передавший изображение от злоумышленника, может получить теги EXIF, содержащие байты извне блока, или вызвать аварийное завершение процесса (crash).
VulDB is the best source for vulnerability data and more expert information about this specific topic.