Security Advisories (3)
CVE-2026-102504 (2026-10-01)

Imager versions before 1.037 for Perl exit the process reading a raw image with an out-of-range raw_datachannels value in i_readraw_wiol. Nothing range-checks raw_datachannels. The line buffer is sized as the image width times the channel count with no overflow check, so a negative or very large count requests an excessive allocation. When it fails, Imager's allocator calls exit(3). Passing an untrusted raw_datachannels value to Imager->read() triggers an uncatchable exit.

CVE-2026-102505 (2026-10-01)

Imager versions before 1.037 for Perl overflow a heap buffer fetching float samples from a paletted image in i_gsampf_fp. For a paletted image, getsamples() with type "float" allocates a buffer of one sample per pixel and fetches every requested channel of each pixel into it. Requesting more than one channel writes past its end. An attacker-supplied image controls the overflowing bytes through its palette.

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.

Documentation

Imager's C API - introduction.
Imager's C API - reference.
recipes working with Imager
Draw primitives to images
Programmable transformation operations
working with image files
Entire Image Filtering Operations
simple access to common functions
Imager's io_layer object.
image models for Imager
using Imager with Inline::C.
installation notes for Imager
track/document large sample support
brief notes on security and image processing
Imager and threads
Simple transformations of one image into another.
an introduction to Imager.
describes the C level virtual image interface
documents the register virtual machine used by Imager::transform2().

Modules

demonstrates writing a simple function using Imager.
dim alternate lines to emulate a video display
read MS Icon files
Perl extension for Generating 24 bit Images
filter that renders the Mandelbrot set.
read MS Icon files
Color handling for Imager.
Rough floating point sample color handling
built-in Imager color table
implements expression parsing and compilation for the expression evaluation engine used by Imager::transform2()
an assembler for producing code for the Imager register machine
functions handy in writing Imager extensions
general fill types
Font handling for Imager.
objects representing the bounding box of a string.
low-level functions for FreeType2 text output
font driver producing consistent output for tests.
low-level functions for Truetype fonts
low-level functions for T1Lib text output
simple wrapped text output
a class for building fountain fills suitable for use by the fountain filter.
simple wrapper for matrix construction
simple preprocessor for handling multiple sample sizes
hot needle of inquiry for libraries
generated information about the register based virtual machine
common functions used in testing Imager
a library of register machine image transformations
represent a list of color ranges for Imager's trim() method.

Provides

in lib/Imager/Expr.pm
in lib/Imager/Expr.pm
in Imager.pm
in ICO/lib/Imager/File/CUR.pm
in DynTest/DynTest.pm
in lib/Imager/Font/Image.pm
in Imager.pm
in lib/Imager/Test.pm