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::Handy - simple access to common functions

SYNOPSIS

use Imager ':handy';
my $color = NC(255, 0, 0);
my $font = NF(1.0, 0, 0);

DESCRIPTION

If you use Imager with the :handy import tag, it will export a number of functions that can shorter your code.

NC()
newcolor()
newcolour()

Create a new Imager::Color object, supplying any parameters to the new() method.

my $color = NC('red');
NF()
newfont()

Create a new Imager::Font object, supplying any parameters to the new() method.

my $font = NF(file => 'foo.ttf');
NCF()

Create a new Imager::Color::Float object, supplying any parameters to the new() method.

my $colorf = NCF(1.0, 0, 0);

BUGS

NC() can be mostly replaced by supplying the color name or other description directly to the drawing method.

AUTHOR

Tony Cook <tonyc@cpan.org>