Security Advisories (6)
CVE-2016-1238 (2016-08-02)

Imager would search the default current directory entry in @INC when searching for file format support modules.

CVE-2008-1928 (2008-04-24)

Buffer overflow in Imager 0.42 through 0.63 allows attackers to cause a denial of service (crash) via an image based fill in which the number of input channels is different from the number of output channels.

CPANSA-Imager-2014-01 (2014-01-03)

When drawing on an image with an alpha channel where the source minimum is greater than zero, Imager would read from beyond the end of a malloc() allocated buffer. In rare circumstances this could lead to some of the source image not being written to the target image, or possibly to a segmentation fault.

CVE-2007-2459 (2007-05-02)

Heap-based buffer overflow in the BMP reader (bmp.c) in Imager perl module (libimager-perl) 0.45 through 0.56 allows remote attackers to cause a denial of service (application crash) and possibly execute arbitrary code via crafted 8-bit/pixel compressed BMP files.

CVE-2006-0053 (2006-04-10)

Imager (libimager-perl) before 0.50 allows user-assisted attackers to cause a denial of service (segmentation fault) by writing a 2- or 4-channel JPEG image (or a 2-channel TGA image) to a scalar, which triggers a NULL pointer dereference.

CVE-2024-53901 (2024-11-17)

"invalid next size" backtrace on use of trim on certain images

Changes for version 0.49

  • handle short EXIF user_comment fields correctly, previously Imager would read (and potentially) write beyond the end of an allocated block, or through a NULL pointer if the EXIF user_comment field was less than 8 bytes long. https://rt.cpan.org/Ticket/Display.html?id=17981
  • tifflib 3.8.0 with MDI (Microsoft(tm) TIFF) support produces a different error when it reads a file with a bad magic number. Update the test to handle the possible messages.
  • some jpeg.c logging calls didn't include parameters enough to match the supplied format string. (detected by valgrind)
  • in some cases memory wasn't being freed during error handling when reading jpeg images (detected by valgrind)
  • free the TIFF object correctly when reading a TIFF image and the page number is out of range. (detected by valgrind)
  • i_gsampf() (used to implement getsamples() for floating point samples) was leaking memory. (detected by valgrind)
  • writing to a PNG file was leaking one memory block (detected by valgrind)
  • some error paths when reading GIF images weren't closing the GIF read object. (detected by valgrind)
  • bump to 0.49 (to get #17981 fix out)
    • For latest versions check the Imager-devel pages: http://imager.perl.org/

Documentation

recipes working with Imager
Draw primitives to images
Programmable transformation operations
working with image files
Entire Image Filtering Operations
Internal image representation information
using Imager with Inline::C.
Simple transformations of one image into another.
an introduction to Imager.
decribes the 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
Perl extension for Generating 24 bit Images
filter that renders the Mandelbrot set.
Imager's C API - introduction.
Imager's C API.
Color handling for Imager.
Rough floating point sample colour 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
low-level functions for Truetype fonts
low-level functions for Type1 fonts
uses Win32 GDI services for text output
simple wrapped text output
a class for building fountain fills suitable for use by the fountain filter.
simple wrapper for matrix construction
generated information about the register based VM
a library of register machine image transformations

Provides

in lib/Imager/Expr.pm
in lib/Imager/Expr.pm
in DynTest/DynTest.pm
in lib/Imager/Font/Image.pm