CVE DatabaseCVE-2016-8735
한국어 권고문 →
CVE-2016-87359.8/CRITICALCISA KEV

Apache Tomcat JmxRemoteLifecycleListener Deserialization Remote Code Execution Vulnerability Analysis and Mitigation Guide (CVE-2016-8735)

⚡ Jump to Patch
Affected Vendors
apache
Affected Components
tomcat
Published Date
2017-04-06
CVSS v3.1
9.8
CRITICAL
EPSS (30d)
90.3%
FIRST.org
CISA KEV
Exploited

Executive & SecOps Summary

SECOPS ASSESSMENT
Affected Scope

Apache Tomcat versions before 6.0.48, 7.x before 7.0.73, 8.x before 8.0.39, 8.5.x before 8.5.7, and 9.x before 9.0.0.M12, when JmxRemoteLifecycleListener is enabled

Impact

Remote attackers with network access to JMX ports can trigger untrusted deserialization without authentication, leading to arbitrary Remote Code Execution (RCE) with system privileges

Mitigation

Upgrade Apache Tomcat to the latest secure release, or disable JmxRemoteLifecycleListener in server.xml and restrict network access to JMX ports using firewalls

Affected Products & Version Scope

Apache Tomcat before 6.0.48, 7.x before 7.0.73, 8.x before 8.0.39, 8.5.x before 8.5.7, and 9.x before 9.0.0.M12

Remediation & Live Workaround Commands

PATCH & WORKAROUND

1. Official Patch & Version Upgrade Commands

The recommended remediation is to upgrade Apache Tomcat to a non-vulnerable version. Below are the commands to stop the service and deploy an updated version on Linux.

bash
# Stop the running Tomcat service
sudo systemctl stop tomcat

# Download and extract the latest secure version (e.g., Tomcat 8.5.100)
cd /opt
sudo wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.100/bin/apache-tomcat-8.5.100.tar.gz
sudo tar -zxvf apache-tomcat-8.5.100.tar.gz

# Restore configuration files and webapps (ensure the vulnerable listener is not re-enabled)

2. Temporary Workaround & Hardening Configuration

If an immediate upgrade is not feasible, comment out or remove the JmxRemoteLifecycleListener declaration in conf/server.xml and block external access to the JMX ports.

xml
<!-- Locate and comment out the following listener in conf/server.xml -->
<!--
<Listener className='org.apache.catalina.mbeans.JmxRemoteLifecycleListener'
          rmiServerPortPlatform='10002' rmiRegistryPortPlatform='10001' />
-->
bash
# Block external access to JMX ports (e.g., 10001, 10002) using iptables
sudo iptables -A INPUT -p tcp --dport 10001 -j DROP
sudo iptables -A INPUT -p tcp --dport 10002 -j DROP

3. Log Audit & IoC Verification Commands

Use the following shell script to scan your Tomcat configuration files and detect if the vulnerable listener is active.

bash
#!/bin/bash
# Scan server.xml for active JmxRemoteLifecycleListener configurations
CONF_FILE='/opt/tomcat/conf/server.xml'

if [ -f '$CONF_FILE' ]; then
    ACTIVE_LISTENER=$(grep -i 'JmxRemoteLifecycleListener' '$CONF_FILE' | grep -v '<!--')
    if [ ! -z '$ACTIVE_LISTENER' ]; then
        echo '[WARNING] JmxRemoteLifecycleListener is active and potentially vulnerable:'
        echo '$ACTIVE_LISTENER'
    else
        echo '[OK] JmxRemoteLifecycleListener is disabled or commented out.'
    fi
else
    echo '[INFO] Tomcat server.xml not found at the specified path.'
fi
Interactive SecOps Remediation Checklist
0/4 (0%)
Recommended Security Control & Mitigation Partner
Cloudflare Enterprise & Pro WAF
Immediately disable JmxRemoteLifecycleListener in server.xml or upgrade Tomcat to a patched version, and restrict JMX port access via network firewalls.

Block Exploits Instantly with Managed Virtual Patching Rules

Can't patch production immediately? Deploy managed WAF rules at the edge to intercept RCE, SQLi, and deserialization payloads before they hit your origin server.

3-min setup · Automated Zero-Day Managed Rules
Practice Exploiting & Patching This Web Vulnerability in an Interactive Lab
Launch Hands-On Security Lab

Technical Root Cause & Exploitation Mechanics

1. Vulnerability Overview & Root Cause

This vulnerability (CVE-2016-8735) is a critical remote code execution flaw residing in Apache Tomcat's JmxRemoteLifecycleListener component. This listener is designed to create a JMX remote connector to facilitate remote monitoring of the platform MBean server. However, when Oracle released a security patch (CVE-2016-3427) to address deserialization issues in JMX credential handling, Tomcat's corresponding listener was not updated to maintain consistency with these credential type validations. This omission left the listener vulnerable to the deserialization of untrusted data.

2. Exploitation Mechanics & Attack Scenario

An attacker begins by scanning for exposed JMX ports (configured via the listener) on target Tomcat servers. If the port is accessible, the attacker initiates a connection and transmits a serialized malicious Java object via the JMX RMI protocol. Because the JmxRemoteLifecycleListener fails to properly validate and filter incoming credential types and serialized payloads, it attempts to deserialize the incoming stream. This triggers a gadget chain (such as Apache Commons Collections payloads), bypassing authentication entirely and executing arbitrary operating system commands under the context of the Tomcat process.

3. Infrastructure & Business Impact

With a CVSS 3.1 score of 9.8 (Critical) and its inclusion in the CISA KEV catalog, this vulnerability poses an extreme risk. Successful exploitation grants the attacker full control over the Tomcat application server. This can lead to complete infrastructure compromise, lateral movement within the internal network, data exfiltration, and deployment of ransomware, resulting in severe operational disruption and reputational damage.

Official Vendor Advisories & References

Frequently Asked SecOps Questions (CVE-2016-8735)

FAQ

Q1. How critical is CVE-2016-8735 and is it actively exploited in the wild?

CVE-2016-8735 is rated CVSS 9.8 (CRITICAL) with a 30-day EPSS exploitation probability of 90.3%. It is listed in the CISA Known Exploited Vulnerabilities (KEV) catalog, requiring immediate emergency remediation.

Q2. Which vendors and products are affected by CVE-2016-8735?

Primary impacted vendors include apache across tomcat. Scope summary: Apache Tomcat before 6.0.48, 7.x before 7.0.73, 8.x before 8.0.39, 8.5.x before 8.5.7, and 9.x before 9.0.0.M12

Q3. What temporary mitigations or workarounds exist for CVE-2016-8735 before patching?

[Mitigation] Upgrade Apache Tomcat to the latest secure release, or disable JmxRemoteLifecycleListener in server.xml and restrict network access to JMX ports using firewalls Follow the CLI remediation commands and interactive SecOps checklist on this page to restrict exposure prior to your maintenance window.

SECOPS WORKBENCH INTEGRATION

Generate an Internal Engineering Notice or CISO Report for CVE-2016-8735

Instantly format this advisory into an executive CISO summary or engineering patch ticket.

Generate Report →

🔗 Related Advisories in Similar Stack (apache)

View Category →
SecOps Advisory Dispatch & RSS Feed

Subscribe to Daily Vulnerability Briefings & KEV Alerts

Concise morning briefings for SecOps, DevSecOps, and SRE teams covering newly exploited CVEs and mitigation priorities.

Slack / Teams / RSS Feed:
PatchKO
CVE-2016-8735 Apache Tomcat JmxRemoteLifecycleListener Deserialization Remote Code Execution Vulnerability Analysis and Mitigation Guide (CVE-2016-8735) (CVSS 9.8) - Patch & Workaround | CVE Pulse