CVE-2026-43514
Low · 3.7CVSS
3.7
EPSS
0.5%
Published
May 12, 2026
CISA due date
—
Cloudanix analysis
A weakness in some Tomcat servers could let someone who can reach a backend connector slowly guess its shared password, so affected systems should be upgraded and that connector should not be exposed.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- High
- Impact
- Data Exposure
- Component
- Network Service
- Class
- Cryptographic Weakness
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
CVE-2026-43514 is an observable timing discrepancy in Apache Tomcat's comparison of the AJP connector secret. When the AJP connector is enabled and protected with a shared secret, an unauthenticated network attacker who can reach the AJP port may be able to infer information about the configured secret by measuring response timing differences across many guesses. The impact is limited to confidentiality of the AJP secret and requires high-precision measurement, repeated attempts, and network access to the AJP service; it does not directly provide code execution, privilege escalation, or service disruption.
Why it matters to the business
Organizations exposing Tomcat AJP services to untrusted networks could face increased risk that an attacker gradually discovers the AJP shared secret and then uses the AJP connector as a trusted backend channel. While the CVSS score is low and exploitation is high-complexity with low EPSS and no known KEV listing, Tomcat is widely deployed and AJP misconfiguration has historically led to serious exposure, so internet-facing or partner-facing AJP ports should be treated as higher priority than the base score alone suggests.
How an attack unfolds
An attacker first identifies an Apache Tomcat instance with the AJP connector reachable over the network, typically on TCP port 8009. If the connector requires a secret, the attacker repeatedly sends AJP requests with candidate secret values and measures subtle timing differences in how Tomcat compares the supplied value against the configured secret. By statistically analyzing many requests under stable network conditions, the attacker may infer correct portions of the secret or narrow the search space. If the secret is recovered, the attacker may attempt to authenticate to the AJP connector and interact with backend application paths as a trusted front-end component, depending on connector configuration and application deployment. The timing nature of the flaw makes exploitation noisy in request volume but not necessarily obvious in application logs unless AJP access and failures are logged.
How to fix it
Upgrade Apache Tomcat to a fixed version: 11.0.22 or later for the 11.x line, 10.1.55 or later for the 10.1.x line, or 9.0.118 or later for the 9.x line. Apache Tomcat 8.5.x and 7.x are affected but are end-of-life or unsupported in many contexts; migrate to a supported fixed branch rather than relying on long-term compensating controls. If immediate upgrade is not possible, restrict AJP to trusted local or private network interfaces only, block external access to TCP port 8009, disable the AJP connector if not required, use a high-entropy secret, rotate the AJP secret after patching, and ensure reverse proxies or load balancers do not expose AJP to untrusted clients.
How to confirm the fix worked
Confirm the installed Tomcat version is 11.0.22 or later, 10.1.55 or later, or 9.0.118 or later. Review Tomcat configuration files such as server.xml to verify whether the AJP connector is enabled, whether it binds only to trusted interfaces, and whether the secretRequired and secret attributes are configured appropriately. Validate network exposure by scanning from untrusted network segments for open AJP services, especially TCP port 8009. After remediation, verify that unauthenticated hosts cannot connect to AJP and that the connector either is disabled, bound to localhost/private trusted addresses, or running a fixed Tomcat version. If the secret may have been exposed, rotate it and confirm dependent proxy or web server configurations have been updated accordingly.
Typical attack path
- Scan for reachable Apache Tomcat AJP connectors, commonly TCP port 8009.
- Confirm the AJP connector is enabled and requires a shared secret.
- Send repeated AJP requests with crafted or guessed secret values.
- Measure response timing differences across large numbers of attempts.
- Use statistical analysis to infer information about the configured AJP secret.
- If the secret is recovered, authenticate to the AJP connector and attempt backend access through trusted AJP routing.
- Leverage any resulting access to enumerate deployed applications or reach protected application functionality.
How to detect it
Review network telemetry, firewall logs, load balancer logs, and host-based connection logs for unusual or repeated connections to Tomcat AJP services, commonly TCP port 8009. Look for high-volume short-lived AJP sessions, repeated failed AJP secret validation events, sequential or patterned attempts from the same source, and connections to AJP from hosts that are not approved reverse proxies or application front ends. Inspect Tomcat catalina logs, localhost logs, application logs, and any enhanced connector/access logging for AJP request failures or rejected messages. Because timing attacks may not leave a distinctive application-layer signature, prioritize correlation: sustained request bursts to AJP, many rejected AJP requests, low-and-slow probing over long periods, and any subsequent successful AJP access from previously failing or unauthorized sources. If packet capture or network detection is available, review traffic to TCP/8009 for AJP protocol messages from unauthorized IPs and abnormal volumes of requests with varying secret values. No public exploitation or named threat actor activity is indicated in the provided data, but absence from KEV does not rule out targeted probing against exposed AJP services.
- tcp/8009
- AJP/1.3
- org.apache.coyote.ajp.AjpNioProtocol
- org.apache.coyote.ajp.AjpAprProtocol
- org.apache.coyote.ajp.AjpNio2Protocol
- Connector protocol="AJP/1.3"
- secretRequired="true"
- secretRequired="false"
- server.xml
- catalina.out
- catalina.log
- localhost.log
- FailedRequestFilter
- Invalid message received with signature
- Rejected request because no secret was provided
- AJP request rejected
- Apache JServ Protocol
What your security team should do
- Prioritize patching any Tomcat instance with AJP reachable from the internet, partner networks, user subnets, or other untrusted segments.
- Upgrade to Tomcat 11.0.22+, 10.1.55+, or 9.0.118+; migrate unsupported 8.5.x and 7.x deployments to a supported branch.
- Block inbound access to TCP port 8009 except from explicitly authorized reverse proxies or application tiers.
- Disable the AJP connector wherever it is not required.
- Rotate AJP shared secrets after upgrading or after any suspected probing activity.
- Search logs and network telemetry for high-volume AJP connection attempts or repeated failed secret/authentication attempts.
- Add AJP exposure checks to external attack surface management and internal vulnerability scanning.
- Treat legacy Tomcat deployments as a modernization priority because unsupported branches may remain vulnerable without fixed releases.
The record
Observable Timing Discrepancy vulnerability when comparing AJP secret in Apache Tomcat. This issue affects Apache Tomcat: from 11.0.0-M1 through 11.0.21, from 10.1.0-M1 through 10.1.54, from 9.0.0.M1 through 9.0.117, from 8.5.0 through 8.5.100, from 7.0.0 through 7.0.109. Older unsupported versions may also be affected. Users are recommended to upgrade to version 11.0.22, 10.1.55 or 9.0.118 which fix the issue.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| openSUSE:Leap 16.0 | tomcat | 0 | 9.0.118-160000.1.1 |
| openSUSE:Leap 16.0 | tomcat10 | 0 | 10.1.55-160000.1.1 |
| openSUSE:Leap 16.0 | tomcat11 | 0 | 11.0.22-160000.1.1 |
| openSUSE:Tumbleweed | tomcat | 0 | 9.0.118-1.1 |
| openSUSE:Tumbleweed | tomcat10 | 0 | 10.1.55-1.1 |
| openSUSE:Tumbleweed | tomcat11 | 0 | 11.0.22-1.1 |
Related vulnerabilities
- CVE-2026-43515 Improper Authorization vulnerability when multiple method constraints define an HTTP… Also affects tomcat
- CVE-2026-43513 Improper Handling of Case Sensitivity vulnerability in LockOutRealm in Apache Tomcat. Also affects tomcat
- CVE-2026-41293 Improper Input Validation vulnerability in Apache Tomcat. Also affects tomcat
- CVE-2026-42498 Exposure of HTTP Authentication Header to unexpected hosts during WebSocket… Also affects tomcat
- CVE-2026-43512 DEPRECATED: Authentication Bypass Issues vulnerability in digest authentication in Apache… Also affects tomcat
- CVE-2026-41284 Allocation of Resources Without Limits or Throttling vulnerability in Apache Tomcat. Also affects tomcat
- CVE-2026-34487 Insertion of Sensitive Information into Log File vulnerability in the cloud membership… Also affects tomcat
- CVE-2026-34486 Missing Encryption of Sensitive Data vulnerability in Apache Tomcat due to the fix for… Also affects tomcat