Closed
Description
Prerequisites
- I have written a descriptive issue title
- I have verified that I am using the latest version of ImageMagick
- I have searched open and closed issues to ensure it has not already been reported
Description
There's a stack-buffer-overflow at coders/pnm.c:1906 in WritePNMImage.
Steps to Reproduce
run_cmd:
magick -seed 0 -undercolor rgb"("67,255,32")" -compress None "(" magick:rose -solarize 1% ")" "(" magick:logo +repage ")" -size 2338x1505+3581 -print "" tmp
Here's ASAN log.
=================================================================
==25473==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7ffe4120cba0 at pc 0x7f1d07f024d8 bp 0x7ffe412080f0 sp 0x7ffe412080e8
WRITE of size 1 at 0x7ffe4120cba0 thread T0
#0 0x7f1d07f024d7 in WritePNMImage coders/pnm.c:1906:21
#1 0x7f1d0779a065 in WriteImage MagickCore/constitute.c:1159:16
#2 0x7f1d0779af8c in WriteImages MagickCore/constitute.c:1376:13
#3 0x7f1d0715e50d in CLINoImageOperator MagickWand/operation.c:4796:14
#4 0x7f1d071621cc in CLIOption MagickWand/operation.c:5258:7
#5 0x7f1d06fa3f6d in ProcessCommandOptions MagickWand/magick-cli.c:529:3
#6 0x7f1d06fa4d0a in MagickImageCommand MagickWand/magick-cli.c:796:5
#7 0x7f1d06feeba1 in MagickCommandGenesis MagickWand/mogrify.c:185:14
#8 0x526f95 in MagickMain utilities/magick.c:149:10
#9 0x5268e1 in main utilities/magick.c:180:10
#10 0x7f1d01a65b96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)
#11 0x41b069 in _start (install/bin/magick+0x41b069)
Address 0x7ffe4120cba0 is located in stack of thread T0 at offset 19104 in frame
#0 0x7f1d07effdaf in WritePNMImage coders/pnm.c:1522
This frame has 6 object(s):
[32, 4128) 'buffer' (line 1523)
[4256, 8352) 'magick' (line 1523)
[8480, 12576) 'type117' (line 1675)
[12704, 14752) 'pixels' (line 1736)
[14880, 16928) 'pixels255' (line 1788)
[17056, 19104) 'pixels381' (line 1857) <== Memory access at offset 19104 overflows this variable
HINT: this may be a false positive if your program uses some custom stack unwind mechanism, swapcontext or vfork
(longjmp and C++ exceptions *are* supported)
SUMMARY: AddressSanitizer: stack-buffer-overflow coders/pnm.c:1906:21 in WritePNMImage
System Configuration
-
ImageMagick version:
Version: ImageMagick 7.0.8-50 Q16 x86_64 2019-06-21 https://imagemagick.org -
Environment (Operating system, version and so on):
Description: Ubuntu 18.04.1 LTS
Release: 18.04
Codename: bionic -
Additional information:
CC=clang-7 CXX=clang++-7 ./configure --disable-openmp