← Vulnerability feed

Vulnerability record · CVE-2020-9484 · published 20 May 2020

CVE-2020-9484: Apache Tomcat session persistence deserialization RCE

Apache · Tomcat

Apache Tomcat's PersistenceManager with a FileStore can deserialize a session file whose name and contents an attacker controls, leading to remote code execution. The flaw is a CWE-502 untrusted deserialization issue and requires four specific preconditions to be met, so it is not universally exploitable. It matters because Tomcat is widely deployed and the default sessionAttributeValueClassNameFilter is null unless a SecurityManager is used.

7.0 CVSS 3.1 High EPSS 56% · top 1.0% CWE-502 · Deserialization of untrusted data
7.0CVSS 3.1 base score, v2 4.4
56%EPSS exploitation probability, 30 days
NoNot in CISA KEV
26Affected product versions listed by NVD
84References
25 Aug 2026Last modified by NVD

Description

When using Apache 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 if a) an attacker is able to control the contents and name of a file on the server; and b) the server is configured to use the PersistenceManager with a FileStore; and c) 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; and d) the attacker knows the relative file path from the storage location used by FileStore to the file the attacker has control over; then, using a specifically crafted request, the attacker will be able to trigger remote code execution via deserialization of the file under their control. Note that all of conditions a) to d) must be true for the attack to succeed.

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

Automated analysis

Generated by VULONE's analysis model from the NVD record, CISA KEV and EPSS data on 19 September 2026. Confidence: high.

high priorityCVSS 3.1 is 7.0 HIGH and EPSS is 0.566 at the 99th percentile, but exploitation requires four specific preconditions including attacker-controlled files on the server.

What it is

Apache Tomcat's PersistenceManager with a FileStore can deserialize a session file whose name and contents an attacker controls, leading to remote code execution. The flaw is a CWE-502 untrusted deserialization issue and requires four specific preconditions to be met, so it is not universally exploitable. It matters because Tomcat is widely deployed and the default sessionAttributeValueClassNameFilter is null unless a SecurityManager is used.

Impact

An attacker who meets all preconditions can execute arbitrary code in the Tomcat process, gaining the privileges of that service. This can lead to full compromise of the application and its data.

Attack surface

The attack is triggered by a crafted HTTP request to the Tomcat instance, so it is network-reachable, but it requires the attacker to already control a file on the server and know its relative path from the FileStore storage location. No authentication or user interaction is required by the vector, though the file-control precondition implies some prior foothold.

Exploitation

CVE-2020-9484 is not listed in CISA KEV, but EPSS gives it a 30-day probability of 0.566 (99th percentile), and public proof-of-concept material is referenced. No ransomware groups are documented as using it.

What to do

  • Upgrade Tomcat to a fixed release (10.0.0-M5 or later, 9.0.35 or later, 8.5.55 or later, 7.0.104 or later) as the primary action.
  • If upgrade is not possible, avoid PersistenceManager with FileStore, or set a strict sessionAttributeValueClassNameFilter that only allows expected classes.
  • Run Tomcat under a SecurityManager where feasible, since the default null filter applies only when no SecurityManager is used.
  • Restrict filesystem write access for the Tomcat process so attackers cannot plant files in or near the session storage directory.
  • Apply vendor patches for downstream products (Debian, Ubuntu, Fedora, openSUSE, Oracle, McAfee) that bundle affected Tomcat versions.

Detection

  • Monitor Tomcat logs for deserialization errors or unexpected session file reads tied to crafted requests.
  • Audit Tomcat configuration for PersistenceManager with FileStore and a null or lax sessionAttributeValueClassNameFilter.
  • Watch for new or modified files in the session storage directory that do not match normal session naming patterns.
  • Alert on suspicious child processes or outbound connections spawned by the Tomcat JVM.

This assessment is produced automatically and is not human-reviewed. Verify against the vendor advisory before acting on it.

Affected products

26 vulnerable configurations from NVD's CPE data, grouped by vendor and product.

References

LinkTags
http://lists.opensuse.org/opensuse-security-announce/2020-05/msg00057.html Third Party Advisory
http://packetstormsecurity.com/files/157924/Apache-Tomcat-CVE-2020-9484-Proof-Of-Concept.html Third Party AdvisoryVDB Entry
http://seclists.org/fulldisclosure/2020/Jun/6 Mailing ListThird Party Advisory
http://www.openwall.com/lists/oss-security/2021/03/01/2 Mailing ListThird Party Advisory
https://kc.mcafee.com/corporate/index?page=content&id=SB10332 Third Party Advisory
https://lists.apache.org/thread.html/r11ce01e8a4c7269b88f88212f21830edf73558997ac7744f37769b77%40%3Cusers.tomcat.apache.
https://lists.apache.org/thread.html/r123b3ebe389f46f9d337923f393cdae4d3e9b78d982d706712f0898c%40%3Ccommits.tomee.apache
https://lists.apache.org/thread.html/r26950738f4b4ca2d256597cf391d52d3450fa665c297ea5ca38f5469%40%3Cusers.tomcat.apache.
https://lists.apache.org/thread.html/r77eae567ed829da9012cadb29af17f2df8fa23bf66faf88229857bb1%40%3Cannounce.tomcat.apac Mailing ListMitigationPatchThird Party Advisory
https://lists.apache.org/thread.html/r7bc247fffcb1d58415215c861d2354bd653c86266230d78a93c71ae2%40%3Cdev.tomcat.apache.or
https://lists.apache.org/thread.html/r8a2ac0e476dbfc1e6440b09dcc782d444ad635d6da26f0284725a5dc%40%3Cusers.tomcat.apache.
https://lists.apache.org/thread.html/r8dd19c514face6dd85fd4eab0271854883f40c7307926c1f7cd5400c%40%3Ccommits.tomee.apache
https://lists.apache.org/thread.html/raa4123e472175bb052fbba165d37187cea923f755e8f3f30d124cb3f%40%3Ccommits.tomee.apache
https://lists.apache.org/thread.html/rb1c0fb105ce2b93b7ec6fc1b77dd208022621a91c12d1f580813cfed%40%3Cdev.tomcat.apache.or
https://lists.apache.org/thread.html/rb51ccd58b2152fc75125b2406fc93e04ca9d34e737263faa6ff0f41f%40%3Cusers.tomcat.apache.
https://lists.apache.org/thread.html/rc1778b38e74b5b6142414d57623bd55b023a72361f422836782fca3c%40%3Cdev.tomcat.apache.or
https://lists.apache.org/thread.html/rc8473b08abdf3c16494ed817bec1717a0ee0c8080315bc27db5f21c3%40%3Ccommits.tomee.apache
https://lists.apache.org/thread.html/rf59c72572b9fee674a5d5cc6afeca4ffc3918a02c354a81cc50b7119%40%3Ccommits.tomee.apache
https://lists.apache.org/thread.html/rf6d5d57b114678d8898005faef31e9fd6d7c981fcc4ccfc3bc272fc9%40%3Cdev.tomcat.apache.or
https://lists.apache.org/thread.html/rf70f53af27e04869bdac18b1fc14a3ee529e59eb12292c8791a77926%40%3Cusers.tomcat.apache.
https://lists.apache.org/thread.html/rfe62fbf9d4c314f166fe8c668e50e5d9dd882a99447f26f0367474bf%40%3Cannounce.apache.org%
https://lists.apache.org/thread.html/rfe62fbf9d4c314f166fe8c668e50e5d9dd882a99447f26f0367474bf%40%3Cannounce.tomcat.apac
https://lists.apache.org/thread.html/rfe62fbf9d4c314f166fe8c668e50e5d9dd882a99447f26f0367474bf%40%3Cdev.tomcat.apache.or
https://lists.apache.org/thread.html/rfe62fbf9d4c314f166fe8c668e50e5d9dd882a99447f26f0367474bf%40%3Cusers.tomcat.apache.
https://lists.debian.org/debian-lts-announce/2020/05/msg00020.html Third Party Advisory
https://lists.debian.org/debian-lts-announce/2020/05/msg00026.html Third Party Advisory
https://lists.debian.org/debian-lts-announce/2020/07/msg00010.html Mailing ListThird Party Advisory
https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/GIQHXENTLYUNOES4LXVNJ2N
https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/WJ7XHKWJWDNWXUJH6UB7CLI
https://security.gentoo.org/glsa/202006-21 Third Party Advisory
https://security.netapp.com/advisory/ntap-20200528-0005/ Third Party Advisory
https://usn.ubuntu.com/4448-1/ Third Party Advisory
https://usn.ubuntu.com/4596-1/ Third Party Advisory
https://www.debian.org/security/2020/dsa-4727 Third Party Advisory
https://www.oracle.com//security-alerts/cpujul2021.html PatchThird Party Advisory
https://www.oracle.com/security-alerts/cpuApr2021.html PatchThird Party Advisory
https://www.oracle.com/security-alerts/cpujan2021.html PatchThird Party Advisory
https://www.oracle.com/security-alerts/cpujan2022.html PatchThird Party Advisory
https://www.oracle.com/security-alerts/cpujul2020.html PatchThird Party Advisory
https://www.oracle.com/security-alerts/cpujul2022.html

Track CVE-2020-9484 inside VULONE

Watch it alongside the ransomware crews, C2 infrastructure and forum chatter that reference it, query it through the API and pull it into your SIEM over TAXII.

Start free Open in platform

Related vulnerabilities

Same products first, then exploited flaws of the same weakness class.

10.0CVE-2025-32433Erlang/OTP SSH server missing authentication allows remote code executionErlang/OTP SSH servers before OTP-27.3.3, OTP-26.2.5.11 and OTP-25.3.2.20 mishandle SSH protocol messages, letting an unauthenticated attacker execut…KEVEPSS 99%analysed10.0CVE-2025-24201Apple WebKit out-of-bounds write allows sandbox escapeCVE-2025-24201 is an out-of-bounds write in Apple's WebKit that was addressed with improved checks. Maliciously crafted web content may break out of …KEVEPSS 3.8%analysed10.0CVE-2021-44228Apache Log4j2 JNDI lookup remote code executionApache Log4j2 versions 2.0-beta9 through 2.15.0 (excluding 2.12.2, 2.12.3, and 2.3.1) do not protect against attacker-controlled LDAP and other JNDI …KEVEPSS 100%analysed9.8CVE-2026-24061GNU Inetutils telnetd argument injection allows remote auth bypasstelnetd in GNU Inetutils through 2.7 fails to sanitize the USER environment variable, so a value such as "-f root" is passed as an argument to login …KEVEPSS 99%analysed9.8CVE-2025-39682Linux kernel TLS zero-length record handling flaw on rx_listThe Linux kernel TLS receive path mishandles zero-length records that arrive from the rx_list, breaking the assumption that a record type change cann…KEVEPSS 2.9%analysed9.8CVE-2025-24813Apache Tomcat Default Servlet path equivalence enables RCE and file disclosureApache Tomcat mishandles path equivalence for names containing an internal dot, letting a remote unauthenticated attacker write files through the Def…KEVEPSS 100%analysed9.8CVE-2024-9680Mozilla Firefox and Thunderbird use-after-free in Animation timelinesA use-after-free flaw in Animation timelines allows an attacker to execute code in the content process of Firefox and Thunderbird. Mozilla reports ex…KEVEPSS 23%analysed9.8CVE-2024-4577PHP-CGI on Windows argument injection leads to remote code executionPHP-CGI on Windows can misinterpret characters in the command line passed to Win32 API functions when certain code pages are configured, due to Windo…KEVEPSS 100%analysed

Source: NIST National Vulnerability Database (record CVE-2020-9484), CISA KEV, FIRST EPSS (scores of 2026-09-27). This page is refreshed as NVD updates the record.