Every CVE Search/ Get API key

CVE-2026-77118

Out-of-bounds write in GraphicsMagick PCD decoder

8.4 HighFix available

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 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.

A 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.

Attack profile

How easy it is to exploit

Attack vector
Local
Complexity
Low
Privileges needed
None
User interaction
Active

What an attacker can affect

Confidentiality
High
Integrity
High
Availability
High

Exploit likelihood

0.17%Unchanged since Aug 21, 2026
90%50%10%1%

What each source reports

CVE List Score used 8.4

Out-of-bounds write in GraphicsMagick PCD decoder

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 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.

A 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.

Record
CVE-2026-77118
CVSS 4.0
8.4 HighCVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Weakness
CWE-787
Updated
2026-11-02
EUVDEUVD-2026-63345 8.4

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 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.

A 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.

Record
EUVD-2026-63345
CVSS 4.0
8.4 HighCVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Updated
2026-11-02
GitHub AdvisoriesGHSA-qjrj-qxx7-fc4j 8.4

A heap out-of-bounds write exists in the Photo CD (PCD) decoder of GraphicsMagick. In DecodeImage...

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 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.

A 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.

Record
GHSA-qjrj-qxx7-fc4j
CVSS 4.0
8.4 HighCVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Weakness
CWE-787
Updated
2026-11-02
NVD 8.4

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 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.

A 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.

Record
CVE-2026-77118
CVSS 4.0
8.4 HighCVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Weakness
CWE-787
Updated
2026-11-02
OSVDEBIAN-CVE-2026-77118 8.4

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 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. A 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.

Record
DEBIAN-CVE-2026-77118
CVSS 4.0
8.4 HighCVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Updated
2026-11-02
OSVOESA-2026-3656 8.4

GraphicsMagick security update

GraphicsMagick is a comprehensive image processing package which is initially based on ImageMagick 5.5.2, but which has undergone significant re-work by the GraphicsMagick Group to significantly improve the quality and performance of the software.

Security Fix(es):

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 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. A 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.(CVE-2026-77118)

Record
OESA-2026-3656
CVSS 4.0
8.4 HighCVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Updated
2026-11-02
OSVUBUNTU-CVE-2026-77118 8.4

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 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. A 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.

Record
UBUNTU-CVE-2026-77118
CVSS 4.0
8.4 HighCVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
graphicsmagick
Debian:12
All versions, plus listed versions
1.4+really1.3.40-41.4+really1.3.40-4+deb12u11.4+really1.3.41-11.4+really1.3.42-11.4+really1.3.42-1.1
Show 12 moreShow less
1.4+really1.3.42-1.1~exp11.4+really1.3.43-11.4+really1.3.44-11.4+really1.3.45+hg17689-11.4+really1.3.45+hg17692-11.4+really1.3.45+hg17696-11.4+really1.3.45-11.4+really1.3.46-11.4+really1.3.46-21.4+really1.3.48-11.4+really1.3.48-21.4+really1.3.49-1
None known
graphicsmagick
Debian:13
All versions, plus listed versions
1.4+really1.3.45+hg17696-11.4+really1.3.46-11.4+really1.3.46-21.4+really1.3.48-11.4+really1.3.48-21.4+really1.3.49-1
None known
graphicsmagick
Debian:14
before 1.4+really1.3.48-1, plus listed versions
1.4+really1.3.45+hg17696-11.4+really1.3.46-11.4+really1.3.46-2
1.4+really1.3.48-1
GraphicsMagick
openEuler:20.03-LTS-SP4
before 1.3.41-4.oe2003sp4
1.3.41-4.oe2003sp4
GraphicsMagick
openEuler:22.03-LTS-SP4
before 1.3.41-4.oe2203sp4
1.3.41-4.oe2203sp4
GraphicsMagick
openEuler:24.03-LTS-SP1
before 1.3.41-4.oe2403sp1
1.3.41-4.oe2403sp1
GraphicsMagick
openEuler:24.03-LTS-SP3
before 1.3.41-4.oe2403sp3
1.3.41-4.oe2403sp3
GraphicsMagick
openEuler:24.03-LTS-SP4
before 1.3.47-2.oe2403sp4
1.3.47-2.oe2403sp4
graphicsmagick
Ubuntu:Pro:14.04:LTS
All versions, plus listed versions
1.3.16-1.1ubuntu21.3.16-1.1ubuntu31.3.18-1ubuntu31.3.18-1ubuntu3.11.3.18-1ubuntu3.1+esm1
Show 7 moreShow less
1.3.18-1ubuntu3.1+esm21.3.18-1ubuntu3.1+esm31.3.18-1ubuntu3.1+esm41.3.18-1ubuntu3.1+esm51.3.18-1ubuntu3.1+esm61.3.18-1ubuntu3.1+esm71.3.18-1ubuntu3.1+esm8
None known
graphicsmagick
Ubuntu:Pro:16.04:LTS
All versions, plus listed versions
1.3.21-31.3.23-11.3.23-1build11.3.23-1ubuntu0.11.3.23-1ubuntu0.1+esm1
Show 7 moreShow less
1.3.23-1ubuntu0.21.3.23-1ubuntu0.31.3.23-1ubuntu0.41.3.23-1ubuntu0.51.3.23-1ubuntu0.61.3.23-1ubuntu0.6+esm11.3.23-1ubuntu0.6+esm2
None known
Show 5 moreShow less
Affected packages
PackageAffectedFixed
graphicsmagick
Ubuntu:Pro:18.04:LTS
All versions, plus listed versions
1.3.26-151.3.26-161.3.26-191.3.27-11.3.27-2
Show 7 moreShow less
1.3.27-31.3.28-11.3.28-21.3.28-2ubuntu0.11.3.28-2ubuntu0.1+esm11.3.28-2ubuntu0.21.3.28-2ubuntu0.2+esm1
None known
graphicsmagick
Ubuntu:Pro:20.04:LTS
All versions, plus listed versions
1.4+really1.3.33+hg16115-11.4+really1.3.33+hg16115-1build11.4+really1.3.33+hg16117-11.4+really1.3.34-11.4+really1.3.34-2
Show 4 moreShow less
1.4+really1.3.34+hg16181-11.4+really1.3.35-11.4+really1.3.35-1ubuntu0.1~esm11.4+really1.3.35-1ubuntu0.1
None known
graphicsmagick
Ubuntu:Pro:22.04:LTS
All versions, plus listed versions
1.4+really1.3.36+hg16481-21.4+really1.3.37-11.4+really1.3.37-1build11.4+really1.3.37+hg16662-1ubuntu11.4+really1.3.38-11.4+really1.3.38-1ubuntu0.11.4+really1.3.38-1ubuntu0.1+esm1
None known
graphicsmagick
Ubuntu:Pro:24.04:LTS
All versions, plus listed versions
1.4+really1.3.42-11.4+really1.3.42-1build11.4+really1.3.42-1.1build11.4+really1.3.42-1.1build21.4+really1.3.42-1.1build31.4+really1.3.42-1.1ubuntu0.1~esm1
None known
graphicsmagick
Ubuntu:26.04:LTS
All versions, plus listed versions
1.4+really1.3.45+hg17696-1build11.4+really1.3.46-2
None known

History

History
RecordedChangedSources
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-77118 is a high vulnerability (CVSS 8.4) in Debian Graphicsmagick, published August 20, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.17%, the 6th percentile. Fixed in graphicsmagick 1.4+really1.3.48-1.

References

MoveEnter Open