Apache Tomcat Remote Code Execution Vulnerability — When running Apache Tomcat, it is possible to upload a JSP file to the server via a specially crafted request. This JSP could then be requested and any code it contained would be executed by the server.
CVE-2017-12617 is a critical Remote Code Execution (RCE) vulnerability in Apache Tomcat that allows attackers to upload malicious JSP files via specially crafted PUT requests when the HTTP PUT method is enabled (readonly parameter set to false). The uploaded JSP file can then be executed on the server, granting full remote code execution capabilities. Public exploits are widely available, and this vulnerability has been actively exploited in the wild. Despite being from 2017, unpatched Tomcat instances remain a significant risk, particularly in legacy environments.
IMMEDIATE ACTIONS:
1. Identify all Apache Tomcat instances across the organization using asset discovery tools
2. Check if the HTTP PUT method is enabled (readonly=false in web.xml DefaultServlet configuration)
3. Immediately disable the PUT method if not required by setting readonly=true
4. Block PUT requests at the WAF/reverse proxy level as a compensating control
PATCHING GUIDANCE:
5. Upgrade Apache Tomcat to patched versions: 9.0.1+, 8.5.23+, 8.0.47+, or 7.0.82+
6. If immediate patching is not possible, ensure readonly parameter is set to true (default)
7. Remove any unauthorized JSP files from the webapps directory
DETECTION RULES:
8. Monitor web server logs for PUT requests containing .jsp extensions
9. Implement IDS/IPS signatures for CVE-2017-12617 exploitation attempts
10. Alert on new JSP file creation in Tomcat webapps directories
11. Monitor for unusual outbound connections from Tomcat processes
12. Search for indicators: PUT requests with trailing '/' or encoded characters targeting .jsp files
COMPENSATING CONTROLS:
13. Implement network segmentation to limit Tomcat server exposure
14. Apply principle of least privilege to Tomcat service accounts
15. Enable Tomcat Security Manager to restrict JSP capabilities
16. Deploy application-layer firewall rules to block malicious PUT requests
الإجراءات الفورية:
1. تحديد جميع خوادم Apache Tomcat في المنظمة باستخدام أدوات اكتشاف الأصول
2. التحقق مما إذا كان أسلوب HTTP PUT مُفعّلاً (readonly=false في إعدادات DefaultServlet في web.xml)
3. تعطيل أسلوب PUT فوراً إذا لم يكن مطلوباً بضبط readonly=true
4. حظر طلبات PUT على مستوى جدار حماية التطبيقات/الوكيل العكسي كإجراء تعويضي
إرشادات التحديث:
5. ترقية Apache Tomcat إلى الإصدارات المُصحّحة: 9.0.1+، 8.5.23+، 8.0.47+، أو 7.0.82+
6. إذا لم يكن التحديث الفوري ممكناً، تأكد من ضبط معامل readonly على true (الافتراضي)
7. إزالة أي ملفات JSP غير مصرح بها من مجلد webapps
قواعد الكشف:
8. مراقبة سجلات خادم الويب لطلبات PUT التي تحتوي على امتدادات .jsp
9. تطبيق توقيعات IDS/IPS لمحاولات استغلال CVE-2017-12617
10. التنبيه عند إنشاء ملفات JSP جديدة في مجلدات webapps
11. مراقبة الاتصالات الصادرة غير المعتادة من عمليات Tomcat
12. البحث عن المؤشرات: طلبات PUT مع '/' لاحقة أو أحرف مُشفّرة تستهدف ملفات .jsp
الضوابط التعويضية:
13. تطبيق تجزئة الشبكة للحد من تعرض خوادم Tomcat
14. تطبيق مبدأ الحد الأدنى من الصلاحيات لحسابات خدمة Tomcat
15. تفعيل مدير أمان Tomcat لتقييد قدرات JSP
16. نشر قواعد جدار حماية طبقة التطبيقات لحظر طلبات PUT الخبيثة