Security Advisories (1)
CVE-2026-112202 (2026-10-20)

Imager::File::GIF versions before 1.006 for Perl allow out-of-bounds reads when consolidating GIF images. With `gif_consolidate => 1`, palette indices from the image are used without checking the colour table's bounds. The i_readgif_low routine reads beyond the heap allocation and copies the bytes into output pixels. The default GIF reader is not affected. The same code ships bundled in the Imager distribution. An attacker supplying a crafted GIF can disclose adjacent heap memory through the decoded output and may crash the process.

NAME

Imager::Transform - a library of register machine image transformations

SYNOPSIS

# get a list of transformations
my @funcs = Imager::Transform->list;
# create a transformation object
my $tran = Imager::Transform->new($name);
# describe it
print $tran->describe;
# a list of constant names
my @constants = $tran->constants;
# information about some of the constants
my @info = $tran->constants(@constants);

DESCRIPTION

This module provides a library of transformations that use the Imager transform2() function.

The aim is to provide a place to collect these transformations.

At some point there might be an interface to add new functions, but there's not a whole lot of point to that.

The interface is a little sparse as yet.

METHODS

my @names = Imager::Transform->list

Returns a list of the transformations.

my $desc = Imager::Transform->describe($name);
my $desc = $tran->describe()

Describes a transformation specified either by name (as a class method) or by reference (as an instance method).

The class method returns undef if there is no such transformation.

my $tran = Imager::Transform->new($name)

Create a new transformation object. Returns undef if there is no such transformation.

my @inputs = $tran->inputs;
my $inputs = $tran->inputs;

Returns a list of input image descriptions, or the number of them, depending on content.

The list contains hash references, which current contain only one member, desc, a description of the use of the input image.

$tran->constants

Returns a list of names of constants that can be set for the transformation.

$tran->constants($name, $name, ...)

Returns a hashref for each named constant, which contains the default in key default and a description in key desc.

my $out = $tran->transform(\%opts, \%constants, @imgs)

Perform the image transformation.

Returns the new image on success, or undef on failure, in which case you can use $tran->errstr to get an error message.

$tran->errstr

The error message, if any from the last image transformation.

BUGS

Needs more transformations.

SEE ALSO

Imager(3), transform.perl

AUTHOR

Tony Cook <tonyc@cpan.org>