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.
{
"binaries": [
{
"binary_name": "graphicsmagick",
"binary_version": "1.4+really1.3.46-2"
},
{
"binary_name": "libgraphics-magick-perl",
"binary_version": "1.4+really1.3.46-2"
},
{
"binary_name": "libgraphicsmagick++-q16-12t64",
"binary_version": "1.4+really1.3.46-2"
},
{
"binary_name": "libgraphicsmagick-q16-3t64",
"binary_version": "1.4+really1.3.46-2"
}
]
}{
"binaries": [
{
"binary_name": "graphicsmagick",
"binary_version": "1.3.18-1ubuntu3.1+esm8"
},
{
"binary_name": "graphicsmagick-imagemagick-compat",
"binary_version": "1.3.18-1ubuntu3.1+esm8"
},
{
"binary_name": "graphicsmagick-libmagick-dev-compat",
"binary_version": "1.3.18-1ubuntu3.1+esm8"
},
{
"binary_name": "libgraphics-magick-perl",
"binary_version": "1.3.18-1ubuntu3.1+esm8"
},
{
"binary_name": "libgraphicsmagick++3",
"binary_version": "1.3.18-1ubuntu3.1+esm8"
},
{
"binary_name": "libgraphicsmagick3",
"binary_version": "1.3.18-1ubuntu3.1+esm8"
}
]
}{
"binaries": [
{
"binary_name": "graphicsmagick",
"binary_version": "1.3.23-1ubuntu0.6+esm2"
},
{
"binary_name": "graphicsmagick-imagemagick-compat",
"binary_version": "1.3.23-1ubuntu0.6+esm2"
},
{
"binary_name": "graphicsmagick-libmagick-dev-compat",
"binary_version": "1.3.23-1ubuntu0.6+esm2"
},
{
"binary_name": "libgraphics-magick-perl",
"binary_version": "1.3.23-1ubuntu0.6+esm2"
},
{
"binary_name": "libgraphicsmagick++-q16-12",
"binary_version": "1.3.23-1ubuntu0.6+esm2"
},
{
"binary_name": "libgraphicsmagick-q16-3",
"binary_version": "1.3.23-1ubuntu0.6+esm2"
}
]
}{
"binaries": [
{
"binary_name": "graphicsmagick",
"binary_version": "1.3.28-2ubuntu0.2+esm1"
},
{
"binary_name": "graphicsmagick-imagemagick-compat",
"binary_version": "1.3.28-2ubuntu0.2+esm1"
},
{
"binary_name": "graphicsmagick-libmagick-dev-compat",
"binary_version": "1.3.28-2ubuntu0.2+esm1"
},
{
"binary_name": "libgraphics-magick-perl",
"binary_version": "1.3.28-2ubuntu0.2+esm1"
},
{
"binary_name": "libgraphicsmagick++-q16-12",
"binary_version": "1.3.28-2ubuntu0.2+esm1"
},
{
"binary_name": "libgraphicsmagick-q16-3",
"binary_version": "1.3.28-2ubuntu0.2+esm1"
}
]
}{
"binaries": [
{
"binary_name": "graphicsmagick",
"binary_version": "1.4+really1.3.35-1ubuntu0.1"
},
{
"binary_name": "graphicsmagick-imagemagick-compat",
"binary_version": "1.4+really1.3.35-1ubuntu0.1"
},
{
"binary_name": "graphicsmagick-libmagick-dev-compat",
"binary_version": "1.4+really1.3.35-1ubuntu0.1"
},
{
"binary_name": "libgraphics-magick-perl",
"binary_version": "1.4+really1.3.35-1ubuntu0.1"
},
{
"binary_name": "libgraphicsmagick++-q16-12",
"binary_version": "1.4+really1.3.35-1ubuntu0.1"
},
{
"binary_name": "libgraphicsmagick-q16-3",
"binary_version": "1.4+really1.3.35-1ubuntu0.1"
}
]
}{
"binaries": [
{
"binary_name": "graphicsmagick",
"binary_version": "1.4+really1.3.38-1ubuntu0.1+esm1"
},
{
"binary_name": "graphicsmagick-imagemagick-compat",
"binary_version": "1.4+really1.3.38-1ubuntu0.1+esm1"
},
{
"binary_name": "graphicsmagick-libmagick-dev-compat",
"binary_version": "1.4+really1.3.38-1ubuntu0.1+esm1"
},
{
"binary_name": "libgraphics-magick-perl",
"binary_version": "1.4+really1.3.38-1ubuntu0.1+esm1"
},
{
"binary_name": "libgraphicsmagick++-q16-12",
"binary_version": "1.4+really1.3.38-1ubuntu0.1+esm1"
},
{
"binary_name": "libgraphicsmagick-q16-3",
"binary_version": "1.4+really1.3.38-1ubuntu0.1+esm1"
}
]
}{
"binaries": [
{
"binary_name": "graphicsmagick",
"binary_version": "1.4+really1.3.42-1.1ubuntu0.1~esm1"
},
{
"binary_name": "graphicsmagick-imagemagick-compat",
"binary_version": "1.4+really1.3.42-1.1ubuntu0.1~esm1"
},
{
"binary_name": "graphicsmagick-libmagick-dev-compat",
"binary_version": "1.4+really1.3.42-1.1ubuntu0.1~esm1"
},
{
"binary_name": "libgraphics-magick-perl",
"binary_version": "1.4+really1.3.42-1.1ubuntu0.1~esm1"
},
{
"binary_name": "libgraphicsmagick++-q16-12t64",
"binary_version": "1.4+really1.3.42-1.1ubuntu0.1~esm1"
},
{
"binary_name": "libgraphicsmagick-q16-3t64",
"binary_version": "1.4+really1.3.42-1.1ubuntu0.1~esm1"
}
]
}