ImageMagick Improper Input Validation Vulnerability — ImageMagick contains an improper input validation vulnerability that affects the EPHEMERAL, HTTPS, MVG, MSL, TEXT, SHOW, WIN, and PLT coders. This allows a remote attacker to execute arbitrary code via shell metacharacters in a crafted image.
CVE-2016-3714, known as 'ImageTragick,' is a critical improper input validation vulnerability in ImageMagick that allows remote code execution through shell metacharacters embedded in crafted image files. With a CVSS score of 9.0 and publicly available exploits, this vulnerability has been actively exploited in the wild. The flaw affects multiple ImageMagick coders (EPHEMERAL, HTTPS, MVG, MSL, TEXT, SHOW, WIN, PLT) and can be triggered simply by processing a malicious image file. Organizations running web applications that process user-uploaded images using ImageMagick are at immediate risk.
Immediate Actions:
1. Identify all systems running ImageMagick by scanning for 'convert', 'identify', 'mogrify', and related binaries across all servers.
2. Update ImageMagick to version 6.9.3-10 or 7.0.1-1 or later immediately.
3. If immediate patching is not possible, implement the following compensating controls:
a. Create/edit the ImageMagick policy.xml file (typically at /etc/ImageMagick-6/policy.xml) to disable vulnerable coders:
<policy domain="coder" rights="none" pattern="EPHEMERAL" />
<policy domain="coder" rights="none" pattern="URL" />
<policy domain="coder" rights="none" pattern="HTTPS" />
<policy domain="coder" rights="none" pattern="MVG" />
<policy domain="coder" rights="none" pattern="MSL" />
<policy domain="coder" rights="none" pattern="TEXT" />
<policy domain="coder" rights="none" pattern="SHOW" />
<policy domain="coder" rights="none" pattern="WIN" />
<policy domain="coder" rights="none" pattern="PLT" />
4. Validate all uploaded image files by checking magic bytes before passing to ImageMagick.
5. Consider replacing ImageMagick with safer alternatives like libvips or Pillow where possible.
Detection Rules:
- Monitor for unusual process spawning from ImageMagick binaries (convert, mogrify, identify).
- Deploy WAF rules to inspect uploaded files for MVG/MSL content containing shell metacharacters.
- Monitor for Snort/Suricata signatures related to ImageTragick exploitation.
- Check web server logs for unusual image upload patterns followed by command execution indicators.
الإجراءات الفورية:
1. تحديد جميع الأنظمة التي تشغل ImageMagick عن طريق البحث عن ملفات 'convert' و'identify' و'mogrify' والملفات التنفيذية ذات الصلة عبر جميع الخوادم.
2. تحديث ImageMagick إلى الإصدار 6.9.3-10 أو 7.0.1-1 أو أحدث فوراً.
3. إذا لم يكن التحديث الفوري ممكناً، قم بتطبيق الضوابط التعويضية التالية:
أ. إنشاء/تعديل ملف policy.xml الخاص بـ ImageMagick لتعطيل المُشفرات المعرضة للخطر:
<policy domain="coder" rights="none" pattern="EPHEMERAL" />
<policy domain="coder" rights="none" pattern="URL" />
<policy domain="coder" rights="none" pattern="HTTPS" />
<policy domain="coder" rights="none" pattern="MVG" />
<policy domain="coder" rights="none" pattern="MSL" />
<policy domain="coder" rights="none" pattern="TEXT" />
<policy domain="coder" rights="none" pattern="SHOW" />
<policy domain="coder" rights="none" pattern="WIN" />
<policy domain="coder" rights="none" pattern="PLT" />
4. التحقق من صحة جميع ملفات الصور المرفوعة عن طريق فحص البايتات السحرية قبل تمريرها إلى ImageMagick.
5. النظر في استبدال ImageMagick ببدائل أكثر أماناً مثل libvips أو Pillow حيثما أمكن.
قواعد الكشف:
- مراقبة إنشاء العمليات غير المعتادة من ملفات ImageMagick التنفيذية.
- نشر قواعد جدار حماية تطبيقات الويب لفحص الملفات المرفوعة بحثاً عن محتوى MVG/MSL يحتوي على أحرف خاصة بالصدفة.
- مراقبة توقيعات Snort/Suricata المتعلقة باستغلال ImageTragick.
- فحص سجلات خادم الويب بحثاً عن أنماط رفع صور غير عادية متبوعة بمؤشرات تنفيذ أوامر.