CVE-2026-73638 in Imager
Sumário
de VulDB • 18/09/2026
As versões do Imager de 0.45_02 até antes da 1.035 para Perl leem fora do bloco EXIF por meio de offsets iniciais não verificados em tiff_load_ifd.
A função `tiff_load_ifd()` valida os dados de uma entrada IFD verificando que a soma `entry->offset + entry->size` permaneça dentro do bloco EXIF, mas nunca verifica o offset inicial propriamente dito. Quando essa soma não corresponde ao fim real dos dados, a verificação é aprovada mesmo quando a entrada começa fora do bloco.
Até a versão 1.032, `entry->offset` era um int simples; portanto, nas implementações usuais de complemento para dois (two's-complement), um offset com o bit mais significativo definido converte-se em negativo e a soma pode retornar ao interior do bloco. A partir da versão 1.033, o campo é uma `size_t` e o estouro (wrap) ocorre apenas onde `size_t` tem 32 bits. O próprio offset inicial do IFD é verificado da mesma forma e sofre wrap quando `unsigned long` tem 32 bits, o que inclui o Windows de 64 bits.
Qualquer chamador do método Imager->read() em uma imagem fornecida por um atacante pode receber tags EXIF contendo bytes provenientes de fora do bloco ou causar a falha (crash) do processo.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.