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.
{
"cna_assigner": "CPANSec",
"cwe_ids": [
"CWE-131"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/102xxx/CVE-2026-102505.json",
"unresolved_ranges": [
{
"extracted_events": [
{
"fixed": "1.037"
}
],
"source": "AFFECTED_FIELD"
},
{
"extracted_events": [
{
"fixed": "1.037"
}
],
"source": "DESCRIPTION"
}
]
}"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-102505.json"
[
{
"deprecated": false,
"digest": {
"function_hash": "79426211150758305460935633913640526500",
"length": 623
},
"id": "CVE-2026-102505-aed3dd76",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/tonycoz/imager/commit/aae49c6be065aa467e834105c816359394a634db",
"target": {
"file": "image.c",
"function": "i_gsampf_fp"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"48036270986658032629210103816564198979",
"160253456048622132399737474495174592220",
"180234216527550753567666581429859310167",
"319531769243159788572291725409526686459"
],
"threshold": 0.9
},
"id": "CVE-2026-102505-ef5b5871",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/tonycoz/imager/commit/aae49c6be065aa467e834105c816359394a634db",
"target": {
"file": "image.c"
}
}
]
"2026-10-03T08:04:05Z"