Apache Tomcat Remote Code Execution Vulnerability — Apache Tomcat contains an unspecified vulnerability that allows for remote code execution if JmxRemoteLifecycleListener is used and an attacker can reach Java Management Extension (JMX) ports. This CVE exists because this listener wasn't updated for consistency with the Oracle patched issues for CVE-2016-3427 which affected credential types.
CVE-2016-8735 is a critical remote code execution vulnerability in Apache Tomcat that exploits the JmxRemoteLifecycleListener component when JMX ports are accessible to attackers. With a CVSS score of 9.0 and known exploits available in the wild, this vulnerability allows unauthenticated attackers to execute arbitrary code on affected Tomcat servers. The flaw stems from Tomcat's failure to incorporate Oracle's fix for CVE-2016-3427, which addressed credential type handling in JMX connections. Organizations running Apache Tomcat with JMX remote monitoring enabled are at immediate risk and should prioritize patching.
Immediate Actions:
1. Identify all Apache Tomcat instances in your environment using asset discovery tools
2. Check if JmxRemoteLifecycleListener is configured in server.xml — if not needed, disable it immediately
3. Block external access to JMX ports (typically 10001-10002 or custom configured) at the firewall level
Patching Guidance:
4. Upgrade Apache Tomcat to the following patched versions or later:
- Tomcat 9.0.0.M13 or later
- Tomcat 8.5.8 or later
- Tomcat 8.0.39 or later
- Tomcat 7.0.73 or later
- Tomcat 6.0.48 or later
5. Ensure the bundled JMX remote listener JAR is updated to the patched version
Compensating Controls:
6. If immediate patching is not possible, disable JmxRemoteLifecycleListener entirely
7. Restrict JMX port access to trusted management networks only using network segmentation
8. Enable JMX authentication with strong credentials and SSL/TLS encryption
9. Implement network-level access controls (ACLs) to limit JMX connectivity
Detection Rules:
10. Monitor for unusual connections to JMX ports from external or unauthorized IPs
11. Deploy IDS/IPS signatures for JMX exploitation attempts
12. Monitor Tomcat logs for unexpected JMX connection attempts
13. Alert on any new process spawned by the Tomcat service account
الإجراءات الفورية:
1. تحديد جميع مثيلات Apache Tomcat في بيئتك باستخدام أدوات اكتشاف الأصول
2. التحقق مما إذا كان JmxRemoteLifecycleListener مُكوّنًا في ملف server.xml — إذا لم يكن مطلوبًا، قم بتعطيله فورًا
3. حظر الوصول الخارجي إلى منافذ JMX (عادةً 10001-10002 أو المنافذ المخصصة) على مستوى جدار الحماية
إرشادات التصحيح:
4. ترقية Apache Tomcat إلى الإصدارات المصححة التالية أو أحدث:
- Tomcat 9.0.0.M13 أو أحدث
- Tomcat 8.5.8 أو أحدث
- Tomcat 8.0.39 أو أحدث
- Tomcat 7.0.73 أو أحدث
- Tomcat 6.0.48 أو أحدث
5. التأكد من تحديث ملف JAR الخاص بمستمع JMX البعيد المضمن إلى الإصدار المصحح
الضوابط التعويضية:
6. إذا لم يكن التصحيح الفوري ممكنًا، قم بتعطيل JmxRemoteLifecycleListener بالكامل
7. تقييد الوصول إلى منافذ JMX لشبكات الإدارة الموثوقة فقط باستخدام تجزئة الشبكة
8. تمكين مصادقة JMX مع بيانات اعتماد قوية وتشفير SSL/TLS
9. تنفيذ ضوابط الوصول على مستوى الشبكة لتقييد اتصال JMX
قواعد الكشف:
10. مراقبة الاتصالات غير المعتادة بمنافذ JMX من عناوين IP خارجية أو غير مصرح بها
11. نشر توقيعات IDS/IPS لمحاولات استغلال JMX
12. مراقبة سجلات Tomcat لمحاولات اتصال JMX غير المتوقعة
13. التنبيه عند أي عملية جديدة يتم إنشاؤها بواسطة حساب خدمة Tomcat