CVE-2026-93018 PUBLISHED

Imager versions before 1.036 for Perl disclose uninitialised heap memory reading a paletted image with pixel indexes past its colour map in i_gpix_p and i_glin_p

Assigner: CPANSec
Reserved: 17.09.2026 Published: 18.09.2026 Updated: 18.09.2026

Imager versions before 1.036 for Perl disclose uninitialised heap memory reading a paletted image with pixel indexes past its colour map in i_gpix_p and i_glin_p.

The palette is allocated uninitialised, and only the entries a reader adds count as populated. The TGA reader stores pixel indexes without checking them against the colour map. i_gpix_p() rejects only an index greater than the count, so an index equal to it reads the first unpopulated entry, and getpixel() returns it.

i_glin_p() skips any index at or beyond the count without writing that pixel to the caller's buffer. The palette-to-RGB conversion reads each row through an uninitialised buffer, so those pixels of the converted image hold prior heap contents.

Reading an attacker-supplied image through Imager->read() and then fetching its pixels or converting it to RGB discloses process heap memory.

Product Status

Package Collection https://cpan.org/modules
Package Name Imager
Versions Default: unaffected
  • affected from 0 to 1.036 (excl.)

Solutions

Upgrade to Imager 1.036 or later.

Credits

  • router0mail finder

References

Problem Types

  • CWE-908 Use of Uninitialized Resource CWE
  • CWE-193 Off-by-one Error CWE