SECURITYHIGHCVE-2026-34486

CVE-2026-34486: Apache Tomcat Missing Encryption of Sensitive Data Vulnerability

A fail-open regression in Apache Tomcat's EncryptInterceptor allows attackers to bypass cluster communication encryption, exposing sensitive data in...

Dylan H.

Security Team

August 4, 2026
4 min read
CVE-2026-34486: Apache Tomcat Missing Encryption of Sensitive Data Vulnerability

Affected Products

  • Apache Tomcat 11.0.20
  • Apache Tomcat 10.1.53
  • Apache Tomcat 9.0.116

Executive Summary

A high-severity vulnerability (CVE-2026-34486) has been disclosed in Apache Tomcat, allowing attackers to bypass the EncryptInterceptor component responsible for encrypting sensitive cluster communication data. The flaw stems from an incomplete fix for CVE-2026-29146 that introduced a fail-open regression — meaning the interceptor silently skips encryption under certain conditions rather than failing closed.

CVSS Score: 7.5 (High)

The vulnerability allows network-positioned attackers to intercept plaintext cluster communications between Tomcat nodes, potentially exposing credentials, session tokens, and other sensitive data transmitted between clustered instances. Patched versions were released on April 4, 2026.


Vulnerability Overview

AttributeValue
CVE IDCVE-2026-34486
CVSS Score7.5 (High)
CWECWE-311 — Missing Encryption of Sensitive Data
TypeEncryptInterceptor Bypass (Fail-Open Regression)
Attack VectorNetwork
Authentication RequiredNo (network access to cluster port)
DiscovererBartlomiej Dmitruk, striga.ai
ReportedMarch 26, 2026
PatchedApril 4, 2026

Affected Versions

BranchAffected VersionFixed Version
Tomcat 11.x11.0.2011.0.21
Tomcat 10.x10.1.5310.1.54
Tomcat 9.x9.0.1169.0.117

Technical Details

Apache Tomcat's EncryptInterceptor is designed to encrypt all data transmitted between nodes in a Tomcat cluster, protecting sensitive information such as session data and cluster management traffic. CVE-2026-34486 arose as a fail-open regression introduced when patching the earlier CVE-2026-29146 Padding Oracle vulnerability.

Attack Scenario

1. Attacker positions themselves on the network path between Tomcat cluster nodes
2. Cluster nodes communicate over the default port 4000 (cluster replication endpoint)
3. Regression causes EncryptInterceptor to silently skip encryption under specific conditions
4. Attacker intercepts cluster communication in plaintext
5. Session data, credentials, and internal cluster management traffic exposed
6. Captured credentials or session tokens can be replayed for unauthorized access

Exploitation Conditions

This vulnerability is conditionally exploitable — all three of the following must be true:

ConditionRequired?
Tomcat clustering feature enabledYes
Port 4000 reachable from attacker positionYes
Affected version (11.0.20, 10.1.53, or 9.0.116)Yes

While the conditions narrow the attack surface, clustered Tomcat deployments are common in enterprise environments and the cluster replication port may be accessible within internal network segments or following an initial breach.


Remediation

Step 1: Upgrade to a Patched Version

# Download and deploy the patched version
# Apache Tomcat 11.0.21
wget https://dlcdn.apache.org/tomcat/tomcat-11/v11.0.21/bin/apache-tomcat-11.0.21.tar.gz
 
# Apache Tomcat 10.1.54
wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.54/bin/apache-tomcat-10.1.54.tar.gz
 
# Apache Tomcat 9.0.117
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.117/bin/apache-tomcat-9.0.117.tar.gz

Step 2: Verify Encryption Is Functioning

After upgrading, confirm that the EncryptInterceptor is active and encrypting cluster traffic:

<!-- In your server.xml cluster configuration -->
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster">
  <Channel className="org.apache.catalina.tribes.group.GroupChannel">
    <Interceptor className="org.apache.catalina.tribes.group.interceptors.EncryptInterceptor"
                 encryptionAlgorithm="AES/CBC/PKCS5Padding"
                 encryptionKeyLength="128"/>
  </Channel>
</Cluster>

Step 3: Restrict Cluster Port Access

# Restrict cluster replication port (default 4000) to known Tomcat nodes only
# Using iptables:
iptables -A INPUT -p tcp --dport 4000 ! -s <node-ip-range> -j DROP
 
# Or configure Tomcat's channel to bind to a specific interface
# In server.xml:
# <Receiver className="..." address="<internal-ip>" port="4000"/>

Step 4: Disable Clustering If Not Required

<!-- Comment out or remove the Cluster element if not in use -->
<!-- <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"> -->

Detection

IndicatorDescription
Unexpected connections to port 4000Potential cluster replication traffic interception
Network captures showing plaintext cluster framesConfirmation of EncryptInterceptor bypass
Session hijacking attempts post-cluster exposureSign of captured session token replay

Verify Your Tomcat Version

# Check Tomcat version
catalina.sh version | grep "Server version"
 
# Or check the version file directly
cat /path/to/tomcat/lib/catalina.jar | unzip -p - org/apache/catalina/util/ServerInfo.properties

Post-Remediation Steps

  1. Upgrade to Tomcat 11.0.21, 10.1.54, or 9.0.117
  2. Validate EncryptInterceptor configuration in server.xml
  3. Restrict port 4000 access via firewall to cluster node IPs only
  4. Monitor cluster port for anomalous connections
  5. Rotate any credentials or session data that may have transited the cluster during the vulnerable period
  6. Disable clustering if it is not actively used

References