Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Version: ImageMagick 7.0.6-8 Q16 x86_64
#./identify $FILE When identify xcf file , imagemagick will allocate memory to store the data, here is the critical code: (xcf.c , in function load_tile)
#./identify $FILE
xcfdata=(XCFPixelInfo *) AcquireQuantumMemory(MagickMax(data_length, //362 tile_image->columns*tile_image->rows),sizeof(*xcfdata));
The parameter "data_length" is passed from function load_level:
if (load_tile(image,tile_image,inDocInfo,inLayerInfo,(size_t) (offset2-offset),exception) == 0) //674
The "offset2" and "offset" can be read from input file (can be controlled).
offset=(MagickOffsetType) ReadBlobMSBLong(image); //626 ... offset2=(MagickOffsetType)ReadBlobMSBLong(image); //645
Here is my policy.xml to limit memory usage,but 256MB limit can be bypassed.
... <policy domain="resource" name="area" value="100MP"/> <policy domain="resource" name="memory" value="256MiB”/> ...
testcase: https://github.com/bestshow/p0cs/blob/master/memory_exhaustion_in_load_tile Credit: ADLab of Venustech
The text was updated successfully, but these errors were encountered:
https://github.com/ImageMagick/ImageMagick/issues/679
fad0369
19dbe11
Thanks for the problem report. We can reproduce it and will have a patch to fix it in GIT master branch @ https://github.com/ImageMagick/ImageMagick later today. The patch will be available in the beta releases of ImageMagick @ https://www.imagemagick.org/download/beta/ by sometime tomorrow.
Sorry, something went wrong.
Please use CVE-2017-13133 for this issue.
No branches or pull requests
Version: ImageMagick 7.0.6-8 Q16 x86_64
#./identify $FILEWhen identify xcf file , imagemagick will allocate memory to store the data, here is the critical code:
(xcf.c , in function load_tile)
The parameter "data_length" is passed from function load_level:
if (load_tile(image,tile_image,inDocInfo,inLayerInfo,(size_t) (offset2-offset),exception) == 0) //674The "offset2" and "offset" can be read from input file (can be controlled).
Here is my policy.xml to limit memory usage,but 256MB limit can be bypassed.
testcase: https://github.com/bestshow/p0cs/blob/master/memory_exhaustion_in_load_tile
Credit: ADLab of Venustech
The text was updated successfully, but these errors were encountered: