Out-of-bounds write in GraphicsMagick PCD decoder
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | ||||||
|---|---|---|---|---|---|---|---|---|---|
| GraphicsMagick Group | GraphicsMagick | unaffected |
|
||||||
| Debian | graphicsmagick | unaffected |
|
||||||
| Fedora Project | GraphicsMagick | unaffected |
|
No data.
No data.
| Vendor | Product | Versions | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Debian | Graphicsmagick |
|
||||||||||||
| Fedora Project | Graphicsmagick |
|
||||||||||||
| Fedoraproject | Extra Packages For Enterprise Linux |
|
||||||||||||
| Graphicsmagick | Graphicsmagick |
|
Vendor Solution
Upgrade to GraphicsMagick 1.3.48 or later, which bounds the decode output pointer against the end of each plane buffer and over-provisions the buffers.
Vendor Workaround
Where upgrading is not possible, prevent the PCD and PCDS coders from being used on untrusted input. GraphicsMagick detects PCD by file content, so filtering on filename extension is not sufficient; the coder module must be removed or the format rejected before decoding.
No CVSS v3.1
No CVSS v3.0
No CVSS v2
This CVE is not in the KEV list.
Exploit prediction score: < 1% (0.171% probability within 30 days)
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Debian graphicsmagick
Fedora Project Fedora Project graphicsmagick |
|
| Vendors & Products |
Debian graphicsmagick
Fedora Project Fedora Project graphicsmagick |
| Type | Values Removed | Values Added |
|---|---|---|
| Description | 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. | |
| Title | Out-of-bounds write in GraphicsMagick PCD decoder | |
| First Time appeared |
Debian
Debian debian Linux Fedoraproject Fedoraproject extra Packages For Enterprise Linux Graphicsmagick Graphicsmagick graphicsmagick |
|
| Weaknesses | CWE-787 | |
| CPEs | cpe:2.3:a:fedoraproject:extra_packages_for_enterprise_linux:8.0:*:*:*:*:*:*:* cpe:2.3:a:fedoraproject:extra_packages_for_enterprise_linux:9.0:*:*:*:*:*:*:* cpe:2.3:a:graphicsmagick:graphicsmagick:*:*:*:*:*:*:*:* cpe:2.3:o:debian:debian_linux:11:*:*:*:*:*:*:* cpe:2.3:o:debian:debian_linux:12:*:*:*:*:*:*:* cpe:2.3:o:debian:debian_linux:13:*:*:*:*:*:*:* |
|
| Vendors & Products |
Debian
Debian debian Linux Fedoraproject Fedoraproject extra Packages For Enterprise Linux Graphicsmagick Graphicsmagick graphicsmagick |
|
| References |
| |
| Metrics |
cvssV4_0
|