GHSA-qxf4-chvg-4r8r BIT-tomcat-2020-1935 CVE-2020-1935
Potential HTTP request smuggling in Apache Tomcat
- Severity
- 4.8 / 10
- Medium · CVSS 3.1
- Exploit chance (EPSS)
- 9.39%
- Chance of exploitation in the next 30 days. Higher than 95.40% of scored vulnerabilities.
- Known exploited
- No
- Not in CISA's catalog
- Weakness
- CWE-444 Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')
- Fix
- Available
- 2 packages have a fixed version
Description
In Apache Tomcat 9.0.0.M1 to 9.0.30, 8.5.0 to 8.5.50 and 7.0.0 to 7.0.99 the HTTP header parsing code used an approach to end-of-line parsing that allowed some invalid HTTP headers to be parsed as valid. This led to a possibility of HTTP Request Smuggling if Tomcat was located behind a reverse proxy that incorrectly handled the invalid Transfer-Encoding header in a particular manner. Such a reverse proxy is considered unlikely.
Affected versions
Maven
| Package | Vulnerable | Fixed in |
|---|---|---|
| org.apache.tomcat.embed:tomcat-embed-core | < 7.0.100 |
7.0.100 |
| org.apache.tomcat.embed:tomcat-embed-core | >= 8.0.0, < 8.5.51 |
8.5.51 |
| org.apache.tomcat.embed:tomcat-embed-core | >= 9.0.0, < 9.0.31 |
9.0.31 |
| org.apache.tomcat:tomcat | < 7.0.100 |
7.0.100 |
| org.apache.tomcat:tomcat | >= 8.0.0, < 8.5.51 |
8.5.51 |
| org.apache.tomcat:tomcat | >= 9.0.0, < 9.0.31 |
9.0.31 |
How to fix
Move to the fixed version or later with your package manager, update the lockfile, and run your tests. If the package only arrives through another dependency, upgrade that dependency first. If none of its releases pulls a fixed version yet, force the version with your package manager's override.
org.apache.tomcat.embed:tomcat-embed-core Maven → 7.0.100
- maven
<dependency><groupId>org.apache.tomcat.embed</groupId><artifactId>tomcat-embed-core</artifactId><version>7.0.100</version></dependency>- gradle
implementation("org.apache.tomcat.embed:tomcat-embed-core:7.0.100")
org.apache.tomcat:tomcat Maven → 7.0.100
- maven
<dependency><groupId>org.apache.tomcat</groupId><artifactId>tomcat</artifactId><version>7.0.100</version></dependency>- gradle
implementation("org.apache.tomcat:tomcat:7.0.100")
Severity breakdown
CVSS 3.1 4.8
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
- Attack vector
- Network
- Attack complexity
- High
- Privileges required
- None
- User interaction
- None
- Scope
- Unchanged
- Confidentiality
- Low
- Integrity
- Low
- Availability
- None
Weakness
CWE-444: Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')
The product acts as an intermediary HTTP agent (such as a proxy or firewall) in the data flow between two entities such as a client and server, but it does not interpret malformed HTTP requests or responses in ways that are consistent with how the messages will be processed by those entities that are at the ultimate destination.
How to prevent it
- Implementation: Use a web server that employs a strict HTTP parsing procedure, such as Apache [REF-433].
- Implementation: Use only SSL communication.
- Implementation: Terminate the client session after each request.
- System Configuration: Turn all pages to non-cacheable.
References
Advisories
Other links
- oracle.com/security-alerts/cpuoct2020.html
- oracle.com/security-alerts/cpujul2020.html
- oracle.com/security-alerts/cpujan2021.html
- debian.org/security/2020/dsa-4680
- debian.org/security/2020/dsa-4673
- usn.ubuntu.com/4448-1
- security.netapp.com/advisory/ntap-20200327-0005
- lists.debian.org/debian-lts-announce/2020/05/msg00026.html
- lists.debian.org/debian-lts-announce/2020/03/msg00006.html
- lists.apache.org/thread.html/rd547be0c9d821b4b1000a694b8e58ef9f5e2d66db03a31dfe77c4b1…
- lists.apache.org/thread.html/rc31cbabb46cdc58bbdd8519a8f64b6236b2635a3922bbeba0f0e374…
- lists.apache.org/thread.html/ra5dee390ad2d60307b8362505c059cd6a726de4d146d63dfce1e05e…
- lists.apache.org/thread.html/r9ce7918faf347e7aac32be930bf26c233b0b140fe37af0bb294158b…
- lists.apache.org/thread.html/r80e9c8417c77d52c62809168b96912bda70ddf7748f19f8210f745b…
- lists.apache.org/thread.html/r7bc994c965a34876bd94d5ff15b4e1e30b6220a15eb9b47c81915b7…
- lists.apache.org/thread.html/r660cd379afe346f10d72c0eaa8459ccc95d83aff181671b7e907691…
- lists.apache.org/thread.html/r441c1f30a252bf14b07396286f6abd8089ce4240e91323211f1a2d7…
- lists.apache.org/thread.html/r127f76181aceffea2bd4711b03c595d0f115f63e020348fe925a916…
- lists.opensuse.org/opensuse-security-announce/2020-03/msg00025.html
Timeline
- Published
- Last updated by the source
- Latest EPSS score
Related advisories
| Advisory | Severity | Why it's related |
|---|---|---|
| GHSA-69r9-qgr7-g2wj Apache Tomcat Missing Encryption of Sensitive Data vulnerability | High Known exploited | Also affects org.apache.tomcat:tomcat |
| GHSA-83qj-6fr2-vhqg Apache Tomcat: Potential RCE and/or information disclosure and/or information corruption with partial PUT | Critical Known exploited | Also affects org.apache.tomcat.embed:tomcat-embed-core |
| GHSA-qppj-fm5r-hxr3 HTTP/2 Stream Cancellation Attack | Medium Known exploited | Also affects org.apache.tomcat.embed:tomcat-embed-core |
| GHSA-xjgh-84hx-56c5 Unrestricted Upload of File with Dangerous Type Apache Tomcat | High Known exploited | Also affects org.apache.tomcat.embed:tomcat-embed-core |
| CVE-2020-1938 Improper Privilege Management in Tomcat | Critical Known exploited | Also affects org.apache.tomcat.embed:tomcat-embed-core |
| GHSA-pjfr-qf3p-3q25 When running Apache Tomcat on Windows with HTTP PUTs enabled it was possible to upload a JSP file to the server | High Known exploited | Also affects org.apache.tomcat.embed:tomcat-embed-core |
| GHSA-h3x4-894j-xpx5 Apache Tomcat's FORM authentication process has an Incorrect Authorization vulnerability | Critical | Also affects org.apache.tomcat.embed:tomcat-embed-core |
| GHSA-9xv2-5v5q-p794 Apache Tomcat's DIGEST authenticator has an Authentication Bypass by Capture-replay vulnerability | Critical | Also affects org.apache.tomcat.embed:tomcat-embed-core |
MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.
Check your repos with MergeHarbor