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.
The product receives input or data, but it does not validate or incorrectly validates that the input has the properties that are required to process the data safely and correctly.
| Name | Vendor | Start Version | End Version |
|---|---|---|---|
| Tomcat | Apache | 9.0.1 (including) | 9.0.113 (excluding) |
| Tomcat | Apache | 10.1.1 (including) | 10.1.50 (excluding) |
| Tomcat | Apache | 11.0.1 (including) | 11.0.15 (excluding) |
| Tomcat | Apache | 9.0.0-milestone1 (including) | 9.0.0-milestone1 (including) |
| Tomcat | Apache | 9.0.0-milestone10 (including) | 9.0.0-milestone10 (including) |
| Tomcat | Apache | 9.0.0-milestone11 (including) | 9.0.0-milestone11 (including) |
| Tomcat | Apache | 9.0.0-milestone12 (including) | 9.0.0-milestone12 (including) |
| Tomcat | Apache | 9.0.0-milestone13 (including) | 9.0.0-milestone13 (including) |
| Tomcat | Apache | 9.0.0-milestone14 (including) | 9.0.0-milestone14 (including) |
| Tomcat | Apache | 9.0.0-milestone15 (including) | 9.0.0-milestone15 (including) |
| Tomcat | Apache | 9.0.0-milestone16 (including) | 9.0.0-milestone16 (including) |
| Tomcat | Apache | 9.0.0-milestone17 (including) | 9.0.0-milestone17 (including) |
| Tomcat | Apache | 9.0.0-milestone18 (including) | 9.0.0-milestone18 (including) |
| Tomcat | Apache | 9.0.0-milestone19 (including) | 9.0.0-milestone19 (including) |
| Tomcat | Apache | 9.0.0-milestone2 (including) | 9.0.0-milestone2 (including) |
| Tomcat | Apache | 9.0.0-milestone20 (including) | 9.0.0-milestone20 (including) |
| Tomcat | Apache | 9.0.0-milestone21 (including) | 9.0.0-milestone21 (including) |
| Tomcat | Apache | 9.0.0-milestone22 (including) | 9.0.0-milestone22 (including) |
| Tomcat | Apache | 9.0.0-milestone23 (including) | 9.0.0-milestone23 (including) |
| Tomcat | Apache | 9.0.0-milestone24 (including) | 9.0.0-milestone24 (including) |
| Tomcat | Apache | 9.0.0-milestone25 (including) | 9.0.0-milestone25 (including) |
| Tomcat | Apache | 9.0.0-milestone26 (including) | 9.0.0-milestone26 (including) |
| Tomcat | Apache | 9.0.0-milestone27 (including) | 9.0.0-milestone27 (including) |
| Tomcat | Apache | 9.0.0-milestone3 (including) | 9.0.0-milestone3 (including) |
| Tomcat | Apache | 9.0.0-milestone4 (including) | 9.0.0-milestone4 (including) |
| Tomcat | Apache | 9.0.0-milestone5 (including) | 9.0.0-milestone5 (including) |
| Tomcat | Apache | 9.0.0-milestone6 (including) | 9.0.0-milestone6 (including) |
| Tomcat | Apache | 9.0.0-milestone7 (including) | 9.0.0-milestone7 (including) |
| Tomcat | Apache | 9.0.0-milestone8 (including) | 9.0.0-milestone8 (including) |
| Tomcat | Apache | 9.0.0-milestone9 (including) | 9.0.0-milestone9 (including) |
| Tomcat | Apache | 10.1.0-milestone1 (including) | 10.1.0-milestone1 (including) |
| Tomcat | Apache | 10.1.0-milestone10 (including) | 10.1.0-milestone10 (including) |
| Tomcat | Apache | 10.1.0-milestone11 (including) | 10.1.0-milestone11 (including) |
| Tomcat | Apache | 10.1.0-milestone12 (including) | 10.1.0-milestone12 (including) |
| Tomcat | Apache | 10.1.0-milestone13 (including) | 10.1.0-milestone13 (including) |
| Tomcat | Apache | 10.1.0-milestone14 (including) | 10.1.0-milestone14 (including) |
| Tomcat | Apache | 10.1.0-milestone15 (including) | 10.1.0-milestone15 (including) |
| Tomcat | Apache | 10.1.0-milestone16 (including) | 10.1.0-milestone16 (including) |
| Tomcat | Apache | 10.1.0-milestone17 (including) | 10.1.0-milestone17 (including) |
| Tomcat | Apache | 10.1.0-milestone18 (including) | 10.1.0-milestone18 (including) |
| Tomcat | Apache | 10.1.0-milestone19 (including) | 10.1.0-milestone19 (including) |
| Tomcat | Apache | 10.1.0-milestone2 (including) | 10.1.0-milestone2 (including) |
| Tomcat | Apache | 10.1.0-milestone20 (including) | 10.1.0-milestone20 (including) |
| Tomcat | Apache | 10.1.0-milestone3 (including) | 10.1.0-milestone3 (including) |
| Tomcat | Apache | 10.1.0-milestone4 (including) | 10.1.0-milestone4 (including) |
| Tomcat | Apache | 10.1.0-milestone5 (including) | 10.1.0-milestone5 (including) |
| Tomcat | Apache | 10.1.0-milestone6 (including) | 10.1.0-milestone6 (including) |
| Tomcat | Apache | 10.1.0-milestone7 (including) | 10.1.0-milestone7 (including) |
| Tomcat | Apache | 10.1.0-milestone8 (including) | 10.1.0-milestone8 (including) |
| Tomcat | Apache | 10.1.0-milestone9 (including) | 10.1.0-milestone9 (including) |
| Tomcat | Apache | 11.0.0-milestone1 (including) | 11.0.0-milestone1 (including) |
| Tomcat | Apache | 11.0.0-milestone10 (including) | 11.0.0-milestone10 (including) |
| Tomcat | Apache | 11.0.0-milestone11 (including) | 11.0.0-milestone11 (including) |
| Tomcat | Apache | 11.0.0-milestone12 (including) | 11.0.0-milestone12 (including) |
| Tomcat | Apache | 11.0.0-milestone13 (including) | 11.0.0-milestone13 (including) |
| Tomcat | Apache | 11.0.0-milestone14 (including) | 11.0.0-milestone14 (including) |
| Tomcat | Apache | 11.0.0-milestone15 (including) | 11.0.0-milestone15 (including) |
| Tomcat | Apache | 11.0.0-milestone16 (including) | 11.0.0-milestone16 (including) |
| Tomcat | Apache | 11.0.0-milestone17 (including) | 11.0.0-milestone17 (including) |
| Tomcat | Apache | 11.0.0-milestone18 (including) | 11.0.0-milestone18 (including) |
| Tomcat | Apache | 11.0.0-milestone19 (including) | 11.0.0-milestone19 (including) |
| Tomcat | Apache | 11.0.0-milestone2 (including) | 11.0.0-milestone2 (including) |
| Tomcat | Apache | 11.0.0-milestone20 (including) | 11.0.0-milestone20 (including) |
| Tomcat | Apache | 11.0.0-milestone21 (including) | 11.0.0-milestone21 (including) |
| Tomcat | Apache | 11.0.0-milestone22 (including) | 11.0.0-milestone22 (including) |
| Tomcat | Apache | 11.0.0-milestone23 (including) | 11.0.0-milestone23 (including) |
| Tomcat | Apache | 11.0.0-milestone24 (including) | 11.0.0-milestone24 (including) |
| Tomcat | Apache | 11.0.0-milestone25 (including) | 11.0.0-milestone25 (including) |
| Tomcat | Apache | 11.0.0-milestone26 (including) | 11.0.0-milestone26 (including) |
| Tomcat | Apache | 11.0.0-milestone3 (including) | 11.0.0-milestone3 (including) |
| Tomcat | Apache | 11.0.0-milestone4 (including) | 11.0.0-milestone4 (including) |
| Tomcat | Apache | 11.0.0-milestone5 (including) | 11.0.0-milestone5 (including) |
| Tomcat | Apache | 11.0.0-milestone6 (including) | 11.0.0-milestone6 (including) |
| Tomcat | Apache | 11.0.0-milestone7 (including) | 11.0.0-milestone7 (including) |
| Tomcat | Apache | 11.0.0-milestone8 (including) | 11.0.0-milestone8 (including) |
| Tomcat | Apache | 11.0.0-milestone9 (including) | 11.0.0-milestone9 (including) |
| Tomcat6 | Ubuntu | upstream | * |
| Tomcat7 | Ubuntu | upstream | * |
| Tomcat8 | Ubuntu | upstream | * |
Input validation is a frequently-used technique for checking potentially dangerous inputs in order to ensure that the inputs are safe for processing within the code, or when communicating with other components. Input can consist of:
Data can be simple or structured. Structured data can be composed of many nested layers, composed of combinations of metadata and raw data, with other simple or structured data. Many properties of raw data or metadata may need to be validated upon entry into the code, such as:
Implied or derived properties of data must often be calculated or inferred by the code itself. Errors in deriving properties may be considered a contributing factor to improper input validation.