Security Advisories (1)
CVE-2026-19082 (2026-08-07)

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.

NAME

Imager::File::ICO - read MS Icon files

SYNOPSIS

use Imager;

my $img = Imager->new;
$img->read(file=>"foo.ico")
  or die $img->errstr;

my @imgs = Imager->read_multi(file => "foo.ico")
  or die Imager->errstr;

$img->write(file => "foo.ico")
  or die $img->errstr;

Imager->write_multi({ file => "foo.ico" }, @imgs)
  or die Imager->errstr;

DESCRIPTION

Imager's MS Icon support is documented in Imager::Files.

AUTHOR

Tony Cook <tonyc@cpan.org>

SEE ALSO

Imager, Imager::Files.