{"id":"CVE-2026-73639","state":"PUBLISHED","title":"Imager::File::PNG versions from 1.003 before 1.004 for Perl write past the end of the row buffer reading a PNG with a tRNS transparency chunk in read_direct8","description":"Imager::File::PNG versions from 1.003 before 1.004 for Perl write past the end of the row buffer reading a PNG with a tRNS transparency chunk in read_direct8.\n\nWith a tRNS chunk, read_direct8() adds an alpha channel to the image it creates but still sizes the row buffer from the original channel count. libpng expands the transparency into that extra channel, so png_read_row() fills one channel more than the buffer holds, at one byte per sample, and writes width bytes past the end of the allocation. Palette images go to read_paletted() and 16-bit images to read_direct16(), which sizes its buffer from png_get_rowbytes() and allocates enough for the expanded row.\n\nThe same reader ships bundled in the Imager distribution.\n\nReading an attacker-supplied PNG through Imager->read() corrupts the heap, which can crash the process.","publishedAt":"2026-09-17T21:18:59.207Z","updatedAt":"2026-09-22T18:27:56.365Z","severity":{"score":9.1,"label":"Critical","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H","source":"CISA-ADP"},"assigner":"CPANSec","products":["Imager-File-PNG","Imager"],"affected":[{"packageName":"Imager-File-PNG","packageURL":"pkg:cpan/Imager-File-PNG","defaultStatus":"unaffected","versions":[{"version":"1.003","status":"affected","lessThan":"1.004","versionType":"custom"}],"collectionURL":"https://cpan.org/modules","modules":["Imager::File::PNG"],"programFiles":["impng.c"],"programRoutines":[{"name":"read_direct8"}],"repo":"https://github.com/tonycoz/imager"},{"packageName":"Imager","packageURL":"pkg:cpan/Imager","defaultStatus":"unaffected","versions":[{"version":"1.034","status":"affected","lessThan":"1.035","versionType":"custom"}],"collectionURL":"https://cpan.org/modules","modules":["Imager::File::PNG"],"programFiles":["PNG/impng.c"],"programRoutines":[{"name":"read_direct8"}],"repo":"https://github.com/tonycoz/imager"}],"references":["https://github.com/tonycoz/imager/security/advisories/GHSA-jhx5-34j8-9g88","https://github.com/tonycoz/imager/commit/d973bd7e8843f084e8071caa24b89545c88b1e4b.patch","https://github.com/tonycoz/imager/pull/567","https://metacpan.org/release/TONYC/Imager-File-PNG-1.004/changes","https://metacpan.org/release/TONYC/Imager-1.035/changes","http://www.openwall.com/lists/oss-security/2026/09/17/6"],"weaknesses":["CWE-787"],"ingestedAt":"2026-10-29T20:12:58.252Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/73xxx/CVE-2026-73639.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-73639","state":"PUBLISHED","datePublished":"2026-09-17T21:18:59.207Z","dateUpdated":"2026-09-22T18:27:56.365Z","assignerShortName":"CPANSec","assignerOrgId":"9b29abf9-4ab0-4765-b253-1875cd9b441e","dateReserved":"2026-08-13T12:51:42.912Z"},"containers":{"cna":{"title":"Imager::File::PNG versions from 1.003 before 1.004 for Perl write past the end of the row buffer reading a PNG with a tRNS transparency chunk in read_direct8","descriptions":[{"lang":"en","value":"Imager::File::PNG versions from 1.003 before 1.004 for Perl write past the end of the row buffer reading a PNG with a tRNS transparency chunk in read_direct8.\n\nWith a tRNS chunk, read_direct8() adds an alpha channel to the image it creates but still sizes the row buffer from the original channel count. libpng expands the transparency into that extra channel, so png_read_row() fills one channel more than the buffer holds, at one byte per sample, and writes width bytes past the end of the allocation. Palette images go to read_paletted() and 16-bit images to read_direct16(), which sizes its buffer from png_get_rowbytes() and allocates enough for the expanded row.\n\nThe same reader ships bundled in the Imager distribution.\n\nReading an attacker-supplied PNG through Imager->read() corrupts the heap, which can crash the process."}],"affected":[{"packageName":"Imager-File-PNG","packageURL":"pkg:cpan/Imager-File-PNG","defaultStatus":"unaffected","versions":[{"version":"1.003","status":"affected","lessThan":"1.004","versionType":"custom"}],"collectionURL":"https://cpan.org/modules","modules":["Imager::File::PNG"],"programFiles":["impng.c"],"programRoutines":[{"name":"read_direct8"}],"repo":"https://github.com/tonycoz/imager"},{"packageName":"Imager","packageURL":"pkg:cpan/Imager","defaultStatus":"unaffected","versions":[{"version":"1.034","status":"affected","lessThan":"1.035","versionType":"custom"}],"collectionURL":"https://cpan.org/modules","modules":["Imager::File::PNG"],"programFiles":["PNG/impng.c"],"programRoutines":[{"name":"read_direct8"}],"repo":"https://github.com/tonycoz/imager"}],"references":[{"url":"https://github.com/tonycoz/imager/security/advisories/GHSA-jhx5-34j8-9g88","tags":["vendor-advisory"]},{"url":"https://github.com/tonycoz/imager/commit/d973bd7e8843f084e8071caa24b89545c88b1e4b.patch","tags":["patch"]},{"url":"https://github.com/tonycoz/imager/pull/567","tags":["issue-tracking"]},{"url":"https://metacpan.org/release/TONYC/Imager-File-PNG-1.004/changes","tags":["release-notes"]},{"url":"https://metacpan.org/release/TONYC/Imager-1.035/changes","tags":["release-notes"]}],"problemTypes":[{"descriptions":[{"cweId":"CWE-787","description":"CWE-787 Out-of-bounds Write","lang":"en","type":"CWE"}]}],"providerMetadata":{"shortName":"CPANSec","orgId":"9b29abf9-4ab0-4765-b253-1875cd9b441e","dateUpdated":"2026-09-17T21:18:59.207Z"},"credits":[{"lang":"en","type":"finder","value":"Alexander Bluhm (bluhm)"}],"solutions":[{"lang":"en","value":"Upgrade to Imager-File-PNG 1.004 or later, or to Imager 1.035 or later if the bundled copy is in use."}],"source":{"discovery":"UNKNOWN"},"timeline":[{"lang":"en","time":"2026-08-19T00:00:00.000Z","value":"Imager-File-PNG 1.004 and Imager 1.035 released with fix."}],"x_generator":{"engine":"cpansec-cna-tool 0.1"}},"adp":[{"title":"CVE Program Container","references":[{"url":"http://www.openwall.com/lists/oss-security/2026/09/17/6"}],"providerMetadata":{"shortName":"CVE","orgId":"af854a3a-2127-422b-91ae-364da2661108","dateUpdated":"2026-09-18T00:18:32.862Z"}},{"title":"CISA ADP Vulnrichment","metrics":[{"cvssV3_1":{"scope":"UNCHANGED","version":"3.1","baseScore":9.1,"attackVector":"NETWORK","baseSeverity":"CRITICAL","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H","integrityImpact":"NONE","userInteraction":"NONE","attackComplexity":"LOW","availabilityImpact":"HIGH","privilegesRequired":"NONE","confidentialityImpact":"HIGH"}},{"other":{"type":"ssvc","content":{"timestamp":"2026-09-22T18:04:27.077498Z","id":"CVE-2026-73639","options":[{"Exploitation":"none"},{"Automatable":"yes"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-09-22T18:27:56.365Z"}}]}}}