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.
{
"cna_assigner": "CPANSec",
"cwe_ids": [
"CWE-193",
"CWE-908"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/93xxx/CVE-2026-93018.json"
}"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-93018.json"
[
{
"deprecated": false,
"digest": {
"function_hash": "40022538085195695978728499375484456459",
"length": 1339
},
"id": "CVE-2026-93018-1cc41bf6",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/tonycoz/imager/commit/dcf0a52e2732399d42ab44d98af6934658d068ee",
"target": {
"file": "palimg.c",
"function": "im_img_pal_new"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "123505094870505756662050232534206530555",
"length": 1706
},
"id": "CVE-2026-93018-40097387",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/tonycoz/imager/commit/dcf0a52e2732399d42ab44d98af6934658d068ee",
"target": {
"file": "PNG/impng.c",
"function": "read_paletted"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"113912290250302637785939367359555217760",
"210239576828354211120648300677010022499",
"337521295668909689252074116719439876418",
"123891981948284181127784884485949759179",
"263577791069339444932821829774207164061"
],
"threshold": 0.9
},
"id": "CVE-2026-93018-662175e0",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/tonycoz/imager/commit/dcf0a52e2732399d42ab44d98af6934658d068ee",
"target": {
"file": "PNG/impng.c"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"43457016399867416317385565640282286197",
"221995265155974833274477276874726793564",
"158458166060950823502165657356438917538",
"153977578628663644201868709465952490934",
"171944331312279255308416398415453600363",
"290233710205467198691260830362915980331",
"316693542740557772993380183925956455555",
"118701682134981459728282115085957431993",
"162094337558355969651674169779786346734",
"142448981787113594943953402832915114528",
"39524022451599756762778065757974891687",
"163007655932505575313534766654804225029",
"4293730668286354682886906716858214031",
"246452826671707334087446167987774997390",
"135907842194084061752088393638439913986",
"312693204296186677836167573546694368281",
"286158292568092530343252920114640244263",
"320950385225095969986720440489254745936",
"76368311313631903109212432281176669040",
"210761666086003713219630274191374380950",
"8612471725599225412037259366665001476",
"15663837994916989868802558420689929065",
"238712991678953378412580360295171124744",
"105123671992250249719443080959937663805",
"228418044598969573976732628072190512058",
"247005940297160631377428539569580468744",
"309532096180337561800848686507339301491",
"157025272634790942623295959512812564695",
"27696624591550921475400364799039921519",
"197857948218835410324542762775218622418",
"103773944678931345212499339020491079430",
"270899068905923645524359730452912084857",
"15510681824295841594904873455642614650",
"124981263904848822346887922293135017254",
"247005940297160631377428539569580468744",
"261782431041098209066117910596901737420",
"121849094446447658059018850399269297916",
"256588484642147953218972628253703612196",
"2330899236418482636100810315055886006",
"40954977687481119322932614082001611904",
"267883663034955152446326349778132208566",
"172444564591308373461277889478916412972",
"247365324945137497934141651852442886780",
"108587633537507210242609878158511307392",
"121849094446447658059018850399269297916",
"256588484642147953218972628253703612196",
"202450795143258813910248898048798300253",
"169714220665848934407674631197035137632",
"94633188803363829305862131032724877280",
"191150541349295147698634484539130859365",
"247365324945137497934141651852442886780",
"108587633537507210242609878158511307392"
],
"threshold": 0.9
},
"id": "CVE-2026-93018-7b8c9d3c",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/tonycoz/imager/commit/dcf0a52e2732399d42ab44d98af6934658d068ee",
"target": {
"file": "palimg.c"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "247825482935492151693505501258468738303",
"length": 385
},
"id": "CVE-2026-93018-a12365c5",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/tonycoz/imager/commit/dcf0a52e2732399d42ab44d98af6934658d068ee",
"target": {
"file": "palimg.c",
"function": "i_gpix_p"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "239798668248289038909907821052800418978",
"length": 1327
},
"id": "CVE-2026-93018-bb4afb21",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/tonycoz/imager/commit/dcf0a52e2732399d42ab44d98af6934658d068ee",
"target": {
"file": "palimg.c",
"function": "i_gsamp_p"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "66726046831655107263683715260853720777",
"length": 596
},
"id": "CVE-2026-93018-f9481c6c",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/tonycoz/imager/commit/dcf0a52e2732399d42ab44d98af6934658d068ee",
"target": {
"file": "palimg.c",
"function": "i_glin_p"
}
}
]
"2026-09-24T08:22:21Z"