Skip to content

GHSA-c9hw-wf7x-jp9j BIT-tomcat-2020-1938 GHSA-c9hw-wf7x-jp9j

Improper Privilege Management in Tomcat

Critical Known exploited Maven
Severity
9.8 / 10
Critical · CVSS 3.1
Exploit chance (EPSS)
99.27%
Chance of exploitation in the next 30 days. Higher than 99.94% of scored vulnerabilities.
Known exploited
Yes
In CISA's catalog
Weakness
CWE-269 Improper Privilege Management
Fix
9.0.31
Upgrade org.apache.tomcat.embed:tomcat-embed-core to this version or later

Description

When using the Apache JServ Protocol (AJP), care must be taken when trusting incoming connections to Apache Tomcat. Tomcat treats AJP connections as having higher trust than, for example, a similar HTTP connection. If such connections are available to an attacker, they can be exploited in ways that may be surprising. In Apache Tomcat 9.0.0.M1 to 9.0.0.30, 8.5.0 to 8.5.50 and 7.0.0 to 7.0.99, Tomcat shipped with an AJP Connector enabled by default that listened on all configured IP addresses. It was expected (and recommended in the security guide) that this Connector would be disabled if not required. This vulnerability report identified a mechanism that allowed: returning arbitrary files from anywhere in the web application, processing any file in the web application as a JSP Further, if the web application allowed file upload and stored those files within the web application (or the attacker was able to control the content of the web application by some other means) then this, along with the ability to process a file as a JSP, made remote code execution possible. It is important to note that mitigation is only required if an AJP port is accessible to untrusted users. Users wishing to take a defence-in-depth approach and block the vector that permits returning arbitrary files and execution as JSP may upgrade to Apache Tomcat 9.0.31, 8.5.51 or 7.0.100 or later. A number of changes were made to the default AJP Connector configuration in 9.0.31 to harden the default configuration. It is likely that users upgrading to 9.0.31, 8.5.51 or 7.0.100 or later will need to make small changes to their configurations.

Affected versions

Maven

PackageVulnerableFixed in
org.apache.tomcat.embed:tomcat-embed-core
>= 9.0.0, < 9.0.31
9.0.31
org.apache.tomcat.embed:tomcat-embed-core
>= 8.0.0, < 8.5.51
8.5.51
org.apache.tomcat.embed:tomcat-embed-core
>= 7.0.0, < 7.0.100
7.0.100
org.apache.tomcat.embed:tomcat-embed-core
>= 9.0.0, < 9.0.31
9.0.31
org.apache.tomcat.embed:tomcat-embed-core
>= 8.0.0, < 8.5.51
8.5.51
org.apache.tomcat.embed:tomcat-embed-core
>= 7.0.0, < 7.0.100
7.0.100

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 → 9.0.31

maven
<dependency><groupId>org.apache.tomcat.embed</groupId><artifactId>tomcat-embed-core</artifactId><version>9.0.31</version></dependency>
gradle
implementation("org.apache.tomcat.embed:tomcat-embed-core:9.0.31")

Severity breakdown

CVSS 3.1 9.8

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H/E:H

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High
Exploit maturity
H

Weakness

CWE-269: Improper Privilege Management

The product does not properly assign, modify, track, or check privileges for an actor, creating an unintended sphere of control for that actor.

How to prevent it
  • Architecture and Design, Operation: Very carefully manage the setting, management, and handling of privileges. Explicitly manage trust zones in the software.
  • Architecture and Design: Follow the principle of least privilege when assigning access rights to entities in a software system.
  • Architecture and Design: Consider following the principle of separation of privilege. Require multiple conditions to be met before permitting access to a system resource.

References

Advisories

Packages

Other links

Timeline

  1. Published
  2. Last updated by the source
AdvisorySeverityWhy it's related
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
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
GHSA-f525-44xv-f2qj
Apache Tomcat - HTTP/2 no-authority bypass of strict SNI validation
Critical Also affects org.apache.tomcat.embed:tomcat-embed-core
GHSA-gcx9-497g-6cp6
Apache Tomcat has an Improper Access Control, Incorrect Authorization vulnerability
Critical Also affects org.apache.tomcat.embed:tomcat-embed-core
Is this in your code?

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