Every CVE Search/ Get API key

CVE-2026-93018

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

5.5 MediumFix available

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.

Attack profile

How easy it is to exploit

Attack vector
Local
Complexity
Low
Privileges needed
None
User interaction
Required

What an attacker can affect

Confidentiality
High
Integrity
None
Availability
None

Exploit likelihood

0.18%Unchanged since Sep 19, 2026
90%50%10%1%

What each source reports

CVE List Score used 5.5

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

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.

Record
CVE-2026-93018
CVSS 3.1
5.5 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N
Weakness
CWE-908, CWE-193
Updated
2026-11-02
EUVDEUVD-2026-82926 5.5

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.

Record
EUVD-2026-82926
CVSS 3.1
5.5 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N
Updated
2026-11-02
NVD 5.5

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.

Record
CVE-2026-93018
CVSS 3.1
5.5 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N
Weakness
CWE-193, CWE-908
Updated
2026-11-02
OSV 5.5

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

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.

Record
CVE-2026-93018
CVSS 3.1
5.5 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N
Weakness
CWE-193, CWE-908
Updated
2026-11-02
OSVDEBIAN-CVE-2026-93018 5.5

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.

Record
DEBIAN-CVE-2026-93018
CVSS 3.1
5.5 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N
Updated
2026-11-02
OSVUBUNTU-CVE-2026-93018 5.5

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.

Record
UBUNTU-CVE-2026-93018
CVSS 3.1
5.5 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N
Updated
2026-11-02
OSVMGASA-2026-0500 No score

Updated perl-Imager package fixes security vulnerabilities

Buffer read underflows on 32-bit size_t systems decoding EXIF data. (CVE-2026-73638) Palette off-by-one discloses uninitialized heap memory. (CVE-2026-93018) TGA reader: signed colourmaplength causes process-killing allocator abort. (CVE-2026-93019) Unvalidated raw_datachannels can cause incorrect memory allocations. (CVE-2026-102504) getsamples(... type => "float") called on a paletted image allocated buffer overflow. (CVE-2026-102505)

Record
MGASA-2026-0500
Updated
2026-11-02

Affected packages

Affected packages
PackageAffectedFixed
libimager-perl
Debian:12
All versions, plus listed versions
1.019+dfsg-11.019+dfsg-21.020+dfsg-11.022+dfsg-11.023+dfsg-1
Show 14 moreShow less
1.024+dfsg-11.024+dfsg-21.025+dfsg-11.027+dfsg-11.028+dfsg-11.029+dfsg-11.030+dfsg-11.031+dfsg-11.032+dfsg-11.033+dfsg-11.034+dfsg-11.034+dfsg-21.035+dfsg-11.036+dfsg-1
None known
libimager-perl
Debian:13
All versions, plus listed versions
1.027+dfsg-11.028+dfsg-11.029+dfsg-11.030+dfsg-11.031+dfsg-1
Show 6 moreShow less
1.032+dfsg-11.033+dfsg-11.034+dfsg-11.034+dfsg-21.035+dfsg-11.036+dfsg-1
None known
libimager-perl
Debian:14
before 1.036+dfsg-1, plus listed versions
1.027+dfsg-11.028+dfsg-11.029+dfsg-11.030+dfsg-11.031+dfsg-1
Show 5 moreShow less
1.032+dfsg-11.033+dfsg-11.034+dfsg-11.034+dfsg-21.035+dfsg-1
1.036+dfsg-1
perl-Imager
Mageia:10
From an advisory covering 5 CVEs
before 1.37.0-1.mga10
1.37.0-1.mga10
libimager-perl
Ubuntu:16.04:LTS
All versions, plus listed versions
1.003+dfsg-11.004+dfsg-11.004+dfsg-1build1
None known
libimager-perl
Ubuntu:18.04:LTS
All versions, plus listed versions
1.005+dfsg-2build11.006+dfsg-1
None known
libimager-perl
Ubuntu:20.04:LTS
All versions, plus listed versions
1.011+dfsg-11.011+dfsg-1build1
None known
libimager-perl
Ubuntu:22.04:LTS
All versions, plus listed versions
1.012+dfsg-1build11.012+dfsg-21.012+dfsg-2build1
None known
libimager-perl
Ubuntu:24.04:LTS
All versions, plus listed versions
1.019+dfsg-21.020+dfsg-11.022+dfsg-11.023+dfsg-11.023+dfsg-1build11.023+dfsg-1build2
None known
libimager-perl
Ubuntu:26.10
All versions, plus listed versions
1.029+dfsg-11.031+dfsg-11.033+dfsg-11.035+dfsg-1
None known
libimager-perl
Ubuntu:26.04:LTS
All versions, plus listed versions
1.027+dfsg-11.029+dfsg-1
None known

History

History
RecordedChangedSources
affected, facts
first indexedCVE List, EUVD, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-93018 is a medium vulnerability (CVSS 5.5) in libimager-perl, published September 18, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.18%, the 7th percentile. Fixed in libimager-perl 1.036+dfsg-1.

References

Show 21 moreShow less
MoveEnter Open