Imager versions through 1.030 for Perl allow a heap out of bounds (OOB) write on crafted multi-frame GIF files.
Imager::File::GIF's ireadgifmulti_low allocates a single per-row buffer GifRow sized for the GIF's global screen width 'SWidth' and reuses it across every image in the file.
The page-match branch validates Image.Width + Image.Left > SWidth before each DGifGetLine write, but the parallel skip-image branch at imgif.c:790-805 calls DGifGetLine(GifFile, GifRow, Width) with no such check.
{
"cna_assigner": "CPANSec",
"cwe_ids": [
"CWE-787"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/8xxx/CVE-2026-8669.json"
}"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-8669.json"
[
{
"target": {
"file": "GIF/imgif.c"
},
"deprecated": false,
"source": "https://github.com/tonycoz/imager/commit/782e9c06cc75a0f7eed383f39522f51f44598b04",
"id": "CVE-2026-8669-82b90ba8",
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"46860043468544964113132919625162930536",
"35273848257858493462335906833620264612",
"281204360428550329474466721928823068751",
"306408919769302464309634585352268674862",
"234247009981710509121541266452789471783",
"78289130565255060544143492540105813332",
"182136963926847311953737578636687175143",
"318486416750502075082441804365480872493",
"308139360653165932373752416472635488719",
"30203600588222488393832740903178851713",
"275759754842006280383438788911036213505",
"305688974245833850232117739758926708733",
"16043790666727679901957621956233326003",
"94034430467792271747143785332541731971",
"1311818874732169873232626054904576526",
"78555117961352823519974455346704210914",
"173328375894549266865528947832989263920",
"170496831023133428147270261571167540154"
]
},
"signature_type": "Line"
},
{
"target": {
"function": "i_readgif_multi_low",
"file": "GIF/imgif.c"
},
"deprecated": false,
"source": "https://github.com/tonycoz/imager/commit/782e9c06cc75a0f7eed383f39522f51f44598b04",
"id": "CVE-2026-8669-d3b25883",
"signature_version": "v1",
"digest": {
"length": 8216.0,
"function_hash": "239959984617517653726008150084814055287"
},
"signature_type": "Function"
}
]
"2026-08-12T16:09:26Z"