First published: Wed May 20 2020(Updated: )
A deserialization flaw was discovered in Apache Tomcat's use of a FileStore. An attacker can exploit the flaw if all of the following are true: * An attacker is able to control the contents and name of a file on the server. * The server is configured to use the PersistenceManager with a FileStore. * The PersistenceManager is configured with sessionAttributeValueClassNameFilter="null" (the default unless a SecurityManager is used) or a sufficiently lax filter to allow the attacker-provided object to be deserialized. * The attacker knows the relative file path from the storage location used by FileStore to the file the attacker has control over. If all these conditions are true, the attacker can use a specifically crafted request to trigger Remote Code Execution through deserialization of the file under their control. This flaw affects the following Tomcat versions: 10.0.0-M1 to 10.0.0-M4, 9.0.0.M1 to 9.0.34, 8.5.0 to 8.5.54, and 7.0.0 to 7.0.103. Upstream commits: Tomcat 10.0: <a href="https://github.com/apache/tomcat/commit/bb33048e3f9b4f2b70e4da2e6c4e34ca89023b1b">https://github.com/apache/tomcat/commit/bb33048e3f9b4f2b70e4da2e6c4e34ca89023b1b</a> Tomcat 9.0: <a href="https://github.com/apache/tomcat/commit/3aa8f28db7efb311cdd1b6fe15a9cd3b167a2222">https://github.com/apache/tomcat/commit/3aa8f28db7efb311cdd1b6fe15a9cd3b167a2222</a> Tomcat 8.5: <a href="https://github.com/apache/tomcat/commit/ec08af18d0f9ddca3f2d800ef66fe7fd20afef2f">https://github.com/apache/tomcat/commit/ec08af18d0f9ddca3f2d800ef66fe7fd20afef2f</a> Tomcat 7.0: <a href="https://github.com/apache/tomcat/commit/53e30390943c18fca0c9e57dbcc14f1c623cfd06">https://github.com/apache/tomcat/commit/53e30390943c18fca0c9e57dbcc14f1c623cfd06</a>
Credit: security@apache.org security@apache.org
Affected Software | Affected Version | How to fix |
---|---|---|
redhat/tomcat6 | <0:6.0.24-115.el6_10 | 0:6.0.24-115.el6_10 |
redhat/tomcat | <0:7.0.76-12.el7_8 | 0:7.0.76-12.el7_8 |
redhat/tomcat7 | <0:7.0.70-40.ep7.el6 | 0:7.0.70-40.ep7.el6 |
redhat/tomcat8 | <0:8.0.36-44.ep7.el6 | 0:8.0.36-44.ep7.el6 |
redhat/tomcat-native | <0:1.2.23-22.redhat_22.ep7.el6 | 0:1.2.23-22.redhat_22.ep7.el6 |
redhat/tomcat7 | <0:7.0.70-40.ep7.el7 | 0:7.0.70-40.ep7.el7 |
redhat/tomcat8 | <0:8.0.36-44.ep7.el7 | 0:8.0.36-44.ep7.el7 |
redhat/tomcat-native | <0:1.2.23-22.redhat_22.ep7.el7 | 0:1.2.23-22.redhat_22.ep7.el7 |
redhat/jws5-tomcat | <0:9.0.30-4.redhat_5.1.el6 | 0:9.0.30-4.redhat_5.1.el6 |
redhat/jws5-tomcat-native | <0:1.2.23-5.redhat_5.el6 | 0:1.2.23-5.redhat_5.el6 |
redhat/jws5-tomcat | <0:9.0.30-4.redhat_5.1.el7 | 0:9.0.30-4.redhat_5.1.el7 |
redhat/jws5-tomcat-native | <0:1.2.23-5.redhat_5.el7 | 0:1.2.23-5.redhat_5.el7 |
redhat/jws5-tomcat | <0:9.0.30-4.redhat_5.1.el8 | 0:9.0.30-4.redhat_5.1.el8 |
redhat/jws5-tomcat-native | <0:1.2.23-5.redhat_5.el8 | 0:1.2.23-5.redhat_5.el8 |
redhat/tomcat | <10.0.0 | 10.0.0 |
redhat/tomcat | <9.0.35 | 9.0.35 |
redhat/tomcat | <8.5.55 | 8.5.55 |
redhat/tomcat | <7.0.104 | 7.0.104 |
maven/org.apache.tomcat:tomcat-catalina | >=7.0.0<7.0.104 | 7.0.104 |
maven/org.apache.tomcat:tomcat-catalina | >=8.0.0<8.5.55 | 8.5.55 |
maven/org.apache.tomcat:tomcat-catalina | >=9.0.0<9.0.35 | 9.0.35 |
maven/org.apache.tomcat:tomcat-catalina | >=10.0.0-M1<=10.0.0-M4 | 10.0.0-M5 |
Apache Tomcat | >=7.0.0<7.0.108 | |
Apache Tomcat | >=8.5.0<8.5.63 | |
Apache Tomcat | >=9.0.1<9.0.43 | |
Apache Tomcat | =9.0.0-milestone1 | |
Apache Tomcat | =9.0.0-milestone10 | |
Apache Tomcat | =9.0.0-milestone11 | |
Apache Tomcat | =9.0.0-milestone12 | |
Apache Tomcat | =9.0.0-milestone13 | |
Apache Tomcat | =9.0.0-milestone14 | |
Apache Tomcat | =9.0.0-milestone15 | |
Apache Tomcat | =9.0.0-milestone16 | |
Apache Tomcat | =9.0.0-milestone17 | |
Apache Tomcat | =9.0.0-milestone18 | |
Apache Tomcat | =9.0.0-milestone19 | |
Apache Tomcat | =9.0.0-milestone2 | |
Apache Tomcat | =9.0.0-milestone20 | |
Apache Tomcat | =9.0.0-milestone21 | |
Apache Tomcat | =9.0.0-milestone22 | |
Apache Tomcat | =9.0.0-milestone23 | |
Apache Tomcat | =9.0.0-milestone24 | |
Apache Tomcat | =9.0.0-milestone25 | |
Apache Tomcat | =9.0.0-milestone26 | |
Apache Tomcat | =9.0.0-milestone27 | |
Apache Tomcat | =9.0.0-milestone3 | |
Apache Tomcat | =9.0.0-milestone4 | |
Apache Tomcat | =9.0.0-milestone5 | |
Apache Tomcat | =9.0.0-milestone6 | |
Apache Tomcat | =9.0.0-milestone7 | |
Apache Tomcat | =9.0.0-milestone8 | |
Apache Tomcat | =9.0.0-milestone9 | |
Apache Tomcat | =10.0.0-milestone1 | |
Apache Tomcat | =10.0.0-milestone2 | |
Apache Tomcat | =10.0.0-milestone3 | |
Apache Tomcat | =10.0.0-milestone4 | |
Debian Debian Linux | =8.0 | |
Debian Debian Linux | =9.0 | |
Debian Debian Linux | =10.0 | |
openSUSE Leap | =15.1 | |
Fedoraproject Fedora | =31 | |
Fedoraproject Fedora | =32 | |
Canonical Ubuntu Linux | =16.04 | |
Canonical Ubuntu Linux | =20.04 | |
Oracle Agile Engineering Data Management | =6.2.1.0 | |
Oracle Agile PLM | =9.3.3 | |
Oracle Agile PLM | =9.3.5 | |
Oracle Agile PLM | =9.3.6 | |
Oracle Communications Cloud Native Core Binding Support Function | =1.10.0 | |
Oracle Communications Cloud Native Core Policy | =1.14.0 | |
Oracle Communications Diameter Signaling Router | >=8.0.0.0<=8.4.0.5 | |
Oracle Communications Element Manager | >=8.2.0<=8.2.2 | |
Oracle Communications Instant Messaging Server | =10.0.1.4.0 | |
Oracle Communications Session Report Manager | >=8.2.0<=8.2.2 | |
Oracle Communications Session Route Manager | >=8.2.0<=8.2.2 | |
Oracle Database | =12.2.0.1 | |
Oracle Database | =19c | |
Oracle Database | =21c | |
Oracle Fmw Platform | =12.2.1.3.0 | |
Oracle Fmw Platform | =12.2.1.4.0 | |
Oracle Hospitality Guest Access | =4.2.0 | |
Oracle Hospitality Guest Access | =4.2.1 | |
Oracle Instantis Enterprisetrack | >=17.1<=17.3 | |
Oracle Managed File Transfer | =12.2.1.3.0 | |
Oracle Managed File Transfer | =12.2.1.4.0 | |
Oracle Mysql Enterprise Monitor | <=8.0.21 | |
Oracle Retail Order Broker | =15.0 | |
Oracle Siebel Apps - Marketing | <=21.9 | |
Oracle Siebel Ui Framework | <=20.12 | |
Oracle Transportation Management | =6.3.7 | |
Oracle Workload Manager | =12.2.0.1 | |
Oracle Workload Manager | =18c | |
Oracle Workload Manager | =19c | |
McAfee ePolicy Orchestrator | =5.9.0 | |
McAfee ePolicy Orchestrator | =5.9.1 | |
McAfee ePolicy Orchestrator | =5.10.0 | |
McAfee ePolicy Orchestrator | =5.10.0-update_1 | |
McAfee ePolicy Orchestrator | =5.10.0-update_2 | |
McAfee ePolicy Orchestrator | =5.10.0-update_3 | |
IBM Data Risk Manager | <=2.0.6 | |
debian/tomcat9 | 9.0.43-2~deb11u10 9.0.70-2 9.0.95-1 |
Users may configure the PersistenceManager with an appropriate value for sessionAttributeValueClassNameFilter to ensure that only application provided attributes are serialized and deserialized. For more details about the configuration, refer to the Apache Tomcat 9 Configuration Reference https://tomcat.apache.org/tomcat-9.0-doc/config/manager.html.
Sign up to SecAlerts for real-time vulnerability data matched to your software, aggregated from hundreds of sources.
(Appears in the following advisories)