Impact
This vulnerability affects applications that:
- Use the ImageMagick handler for image processing (
imagick
as the image library)
- AND either:
- Allow file uploads with user-controlled filenames and process uploaded images using the
resize()
method
- OR use the
text()
method with user-controlled text content or options
An attacker can:
- Upload a file with a malicious filename containing shell metacharacters that get executed when the image is processed
- OR provide malicious text content or options that get executed when adding text to images
Patches
Upgrade to v4.6.2 or later.
Workarounds
- Switch to the GD image handler (
gd
, the default handler), which is not affected by either vulnerability
- For file upload scenarios: Instead of using user-provided filenames, generate random names to eliminate the attack vector with
getRandomName()
when using the move()
method, or use the store()
method, which automatically generates safe filenames
- For text operations: If you must use ImageMagick with user-controlled text, sanitize the input to only allow safe characters:
preg_replace('/[^a-zA-Z0-9\s.,!?-]/', '', $text)
and validate/restrict text options
References
Impact
This vulnerability affects applications that:
imagick
as the image library)resize()
methodtext()
method with user-controlled text content or optionsAn attacker can:
Patches
Upgrade to v4.6.2 or later.
Workarounds
gd
, the default handler), which is not affected by either vulnerabilitygetRandomName()
when using themove()
method, or use thestore()
method, which automatically generates safe filenamespreg_replace('/[^a-zA-Z0-9\s.,!?-]/', '', $text)
and validate/restrict text optionsReferences