Actively exploited vulnerability
Apache Tomcat: privilege escalation flaw under attack
CVE-2020-1938 · Apache Tomcat Improper Privilege Management Vulnerability
What is affected
Apache Tomcat is mostly run by companies, schools and public bodies, not on home computers. You are unlikely to have it yourself, but organisations that hold your data may. Breaches that start with flaws like this one are how personal data ends up leaked.
Apache Tomcat treats Apache JServ Protocol (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.
What an attacker can do
This is a privilege escalation flaw. It lets an attacker turn limited access into full administrator control. Attackers pair it with another flaw or a malicious file: once anything of theirs runs on the device, this bug lets it take over completely.
- How it is reached
- Over the internet or network
- Access the attacker needs
- No account needed
- Does the victim have to do something?
- No, works without the victim doing anything
What to do
- At home: nothing to install. Keep your own devices updated and use a different password for every service, so that a breach at one organisation does not open your other accounts.
- If you administer Apache Tomcat at work: apply the vendor's fix or mitigation now and review logs for signs of compromise, because the flaw was being exploited before it was listed.
- If the product is past its support date and no fix exists, take it off the internet or retire it.
Apply updates per vendor instructions.
How urgent is it
CISA added this vulnerability to its Known Exploited Vulnerabilities catalogue on March 3, 2022, which means there is reliable evidence of attacks in the wild. US federal agencies must fix it by March 17, 2022, a deadline that has already passed. That deadline does not bind anyone else, but it shows how seriously the agency rates it.
The EPSS model estimates a 99% probability that this flaw will be exploited somewhere in the next 30 days. That is higher than 99.9% of all scored vulnerabilities.
Its CVSS severity score is 9.8 out of 10 (critical), as recorded in the US National Vulnerability Database.
Technical 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.