Cloudanix VulnDB

CVE-2025-66614

Critical · 9.1

CVSS

9.1

EPSS

0.3%

Published

Feb 17, 2026

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Track

A flaw in a popular web server could allow an attacker to bypass certificate-based login requirements and gain unauthorized access to protected applications and data.

Exploitation
Remote Unauthenticated
Attacker needs
None
Complexity
Moderate
Impact
Data Exposure
Component
Network Service
Class
Authentication Bypass
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

The vulnerability stems from improper input validation where Apache Tomcat fails to verify that the hostname provided in the TLS Server Name Indication (SNI) extension matches the hostname in the HTTP Host header. In a configuration with multiple virtual hosts, this allows an attacker to initiate a TLS handshake with a virtual host that does not require client certificate authentication and then send an HTTP request to a different virtual host on the same connector that does. This completely bypasses the client certificate authentication mechanism, granting unauthorized access to protected resources.

Why it matters to the business

This flaw allows attackers to bypass client certificate authentication, a strong security control often used to protect critical applications and sensitive data. Successful exploitation could lead to unauthorized access, data breaches, and modification of confidential information, undermining the security of systems that rely on mutual TLS for trust. The critical CVSS score of 9.1 highlights the severe risk of compromise to business operations and data integrity without requiring any prior access or credentials.

How an attack unfolds

An attacker targets a vulnerable Apache Tomcat server configured with at least two virtual hosts, where one enforces client certificate authentication at the connector level and another does not. The attacker initiates a TLS connection, setting the SNI field in the Client Hello packet to the hostname of the virtual host that *does not* require a client certificate. The server proceeds with the TLS handshake, which completes successfully without any certificate validation. Over this established TLS tunnel, the attacker then sends an HTTP request, but sets the 'Host' header to the hostname of the virtual host that *does* require a client certificate. Because the certificate check was tied to the initial handshake (which was for the other host), Tomcat processes the request and grants the attacker access to the protected virtual host's resources, effectively bypassing the authentication control.

How to fix it

The primary remediation is to upgrade Apache Tomcat to a patched version. Users should upgrade to version 11.0.15 or later, 10.1.50 or later, or 9.0.113 or later. For instances running the end-of-life 8.5.x branch, an upgrade to a supported version is strongly recommended. As a temporary mitigation if upgrading is not immediately feasible, enforce client certificate authentication at the web application layer (e.g., via security constraints in web.xml) rather than solely at the Connector level. This ensures the check is performed after the virtual host is determined, preventing the bypass.

How to confirm the fix worked

To confirm the vulnerability is remediated, verify that the running Apache Tomcat version is 11.0.15+, 10.1.50+, or 9.0.113+. To test for exposure, review the Tomcat 'server.xml' configuration file for multiple '<Host>' elements where client certificate authentication is configured inconsistently at the '<Connector>' level. A manual test can be performed using a tool like OpenSSL's 's_client' to connect to the server, specifying the non-authenticating host via the '-servername' flag (for SNI) and then sending an HTTP request with a 'Host' header pointing to the protected host. On a vulnerable system, the request will succeed; on a patched system, it will be denied.

Typical attack path

  1. The attacker identifies a publicly accessible Apache Tomcat server hosting multiple virtual hosts.
  2. The attacker determines that one virtual host does not require client certificate authentication, while a target virtual host does.
  3. The attacker initiates a TLS connection, providing the hostname of the non-authenticating virtual host in the SNI extension.
  4. The server establishes the TLS session without validating a client certificate.
  5. The attacker sends an HTTP request over the established session, setting the HTTP 'Host' header to the target virtual host that requires authentication.
  6. The server processes the request for the protected host, bypassing the certificate check and granting the attacker unauthorized access to its resources.

How to detect it

Detecting historical exploitation is difficult as a successful attack generates logs that appear legitimate. The primary indicator is a mismatch between the hostname in the TLS SNI field and the HTTP Host header for a single connection, which requires deep packet inspection or verbose TLS logging that is not typically enabled. Security teams should review Tomcat access logs for any successful requests to sensitive endpoints on a virtual host requiring client authentication, particularly if the source IPs are unexpected or unknown. Correlating network flow data with application logs may reveal suspicious patterns where a connection appears to target one host but generates activity on another.

What your security team should do

  • Immediately upgrade all vulnerable Apache Tomcat instances to a patched version, prioritizing internet-facing servers.
  • Identify all Tomcat servers configured with multiple virtual hosts and inconsistent client certificate authentication settings.
  • If patching must be delayed, implement the mitigation of moving client certificate authentication enforcement from the Connector to the web application layer.
  • Scan for all Apache Tomcat installations across the environment to ensure all instances, including those in development and staging, are identified and patched.

The record

Improper Input Validation vulnerability. This issue affects Apache Tomcat: from 11.0.0-M1 through 11.0.14, from 10.1.0-M1 through 10.1.49, from 9.0.0-M1 through 9.0.112. The following versions were EOL at the time the CVE was created but are known to be affected: 8.5.0 through 8.5.100. Older EOL versions are not affected. Tomcat did not validate that the host name provided via the SNI extension was the same as the host name provided in the HTTP host header field. If Tomcat was configured with more than one virtual host and the TLS configuration for one of those hosts did not require client certificate authentication but another one did, it was possible for a client to bypass the client certificate authentication by sending different host names in the SNI extension and the HTTP host header field. The vulnerability only applies if client certificate authentication is only enforced at the Connector. It does not apply if client certificate authentication is enforced at the web application. Users are recommended to upgrade to version 11.0.15 or later, 10.1.50 or later or 9.0.113 or later, which fix the issue.

Affected packages

Ecosystem Package Introduced Fixed
Maven org.apache.tomcat.embed:tomcat-embed-core 0 9.0.112
Maven org.apache.tomcat.embed:tomcat-embed-core 10.1.0-M1 10.1.49
Maven org.apache.tomcat.embed:tomcat-embed-core 11.0.0-M1 11.0.14
Maven org.apache.tomcat:tomcat 0 9.0.112
Maven org.apache.tomcat:tomcat 10.1.0-M1 10.1.49
Maven org.apache.tomcat:tomcat 11.0.0-M1 11.0.14
Maven org.apache.tomcat:tomcat-catalina 0 9.0.112
Maven org.apache.tomcat:tomcat-catalina 10.1.0-M1 10.1.49
Maven org.apache.tomcat:tomcat-catalina 11.0.0-M1 11.0.14
Chainguard kayenta-2025.0 0 2025.0.8-r9
Chainguard kayenta-2025.1 0 2025.1.6-r7
Chainguard kayenta-2025.2 0 2025.2.4-r3
Chainguard kayenta-2025.4 0 2025.4.3-r2
Chainguard kayenta-2026.0 0 2026.0.2-r2
Chainguard kayenta-fips-2025.0 0 2025.0.8-r10
Chainguard kayenta-fips-2025.1 0 2025.1.6-r7
Chainguard kayenta-fips-2025.2 0 2025.2.4-r3
Chainguard kayenta-fips-2025.4 0 2025.4.3-r2
Chainguard kayenta-fips-2026.0 0 2026.0.2-r2
Chainguard nacos 0 3.1.1-r4
Chainguard nacos-docker 0 3.1.1-r3
Chainguard thingsboard-tb-mqtt-transport 0 4.3.1-r2
Chainguard thingsboard-tb-node 0 4.3.1-r2
SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS tomcat 0 9.0.115-150200.102.1
SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS tomcat 0 9.0.115-150200.102.1
SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS tomcat 0 9.0.115-150200.102.1
SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS tomcat10 0 10.1.52-150200.5.61.1
SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS tomcat 0 9.0.115-150200.102.1
SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS tomcat10 0 10.1.52-150200.5.61.1
SUSE:Linux Enterprise Module for Web and Scripting 15 SP7 tomcat 0 9.0.115-150200.102.1
SUSE:Linux Enterprise Module for Web and Scripting 15 SP7 tomcat10 0 10.1.52-150200.5.61.1
SUSE:Linux Enterprise Module for Web and Scripting 15 SP7 tomcat11 0 11.0.18-150600.13.15.1
SUSE:Linux Enterprise Server 15 SP4-LTSS tomcat 0 9.0.115-150200.102.1
SUSE:Linux Enterprise Server 15 SP5-LTSS tomcat 0 9.0.115-150200.102.1
SUSE:Linux Enterprise Server 15 SP5-LTSS tomcat10 0 10.1.52-150200.5.61.1
SUSE:Linux Enterprise Server 15 SP6-LTSS tomcat 0 9.0.115-150200.102.1
SUSE:Linux Enterprise Server 15 SP6-LTSS tomcat10 0 10.1.52-150200.5.61.1
SUSE:Linux Enterprise Server 15 SP6-LTSS tomcat11 0 11.0.18-150600.13.15.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP4 tomcat 0 9.0.115-150200.102.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP5 tomcat 0 9.0.115-150200.102.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP5 tomcat10 0 10.1.52-150200.5.61.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP6 tomcat 0 9.0.115-150200.102.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP6 tomcat10 0 10.1.52-150200.5.61.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP6 tomcat11 0 11.0.18-150600.13.15.1
Wolfi thingsboard-tb-mqtt-transport 0 4.3.1-r2
Wolfi thingsboard-tb-node 0 4.3.1-r2
openSUSE:Leap 15.6 tomcat 0 9.0.115-150200.102.1
openSUSE:Leap 15.6 tomcat10 0 10.1.52-150200.5.61.1
openSUSE:Leap 15.6 tomcat11 0 11.0.18-150600.13.15.1
openSUSE:Leap 16.0 tomcat 0 9.0.117-160000.1.1
openSUSE:Leap 16.0 tomcat 0 9.0.115-160000.1.1
openSUSE:Leap 16.0 tomcat10 0 10.1.52-160000.1.1
openSUSE:Leap 16.0 tomcat10 0 10.1.54-160000.1.1
openSUSE:Leap 16.0 tomcat11 0 11.0.18-160000.1.1
openSUSE:Leap 16.0 tomcat11 0 11.0.21-160000.1.1
openSUSE:Tumbleweed tomcat 0 9.0.115-1.1
openSUSE:Tumbleweed tomcat10 0 10.1.52-1.1
openSUSE:Tumbleweed tomcat11 0 11.0.18-1.1

Related vulnerabilities