{"id":"CVE-2026-77118","title":"A heap out-of-bounds write exists in the Photo CD (PCD) decoder of GraphicsMagick","summary":"A heap out-of-bounds write exists in the Photo CD (PCD) decoder of GraphicsMagick. In DecodeImage() (coders/pcd.c), the Huffman delta loop advances its output pointer with q++ after every decoded delta and never checks it against the end…","severity":"none","cwe":["CWE-787"],"published":"2026-08-20","updated":"2026-09-09","sourceUpdated":"2026-09-09T15:52:04.827","source":"NVD","sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-77118","references":[{"url":"https://foss.heptapod.net/graphicsmagick/graphicsmagick/-/commit/937cdd9920bd96","label":"22e2d327-25fe-45d7-9f0c-dcd23b7108df"},{"url":"https://foss.heptapod.net/graphicsmagick/graphicsmagick/-/raw/GraphicsMagick-1_3_48/ChangeLog","label":"22e2d327-25fe-45d7-9f0c-dcd23b7108df"}],"tags":["nvd"],"epss":0.00171,"epssPercentile":0.05778,"ingestedAt":"2026-09-09T16:14:05.514Z","slug":"CVE-2026-77118","body":"## Overview\n\nA heap out-of-bounds write exists in the Photo CD (PCD) decoder of GraphicsMagick. In DecodeImage() (coders/pcd.c), the Huffman delta loop advances its output pointer with q++ after every decoded delta and never checks it against the end of the heap-allocated luma/chroma plane buffers. The pointer is repositioned only when a sync marker introduces a new plane/row; between sync markers the run length is bounded solely by the input.\n\n\n\nA crafted PCD file that positions the pointer near the end of a plane and then supplies a long run of deltas with no intervening sync therefore walks the pointer past the end of the allocation and writes through it. Processing an untrusted PCD file — for example with gm convert or gm identify, or through any application linked against libGraphicsMagick — can corrupt heap memory beyond the buffers.\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"sunlit","depthScore":3,"depthScoreParts":{"impact":2.8,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}