{"id":"CVE-2016-3087","url":"https://www.cyber-defence.io/tools/cve/CVE-2016-3087","generatedAt":"2026-10-28T00:17:39.501Z","title":"Apache Struts 2.3.19 to 2.3.20.2, 2.3.21 to 2.3.24.1, and 2.3.25 to 2.3.28, when Dynamic Method Invocation is enabled, allow remote attackers to execute arbitrary code via vectors related to an !","description":"Apache Struts 2.3.19 to 2.3.20.2, 2.3.21 to 2.3.24.1, and 2.3.25 to 2.3.28, when Dynamic Method Invocation is enabled, allow remote attackers to execute arbitrary code via vectors related to an ! (exclamation mark) operator to the REST Plugin.","published":"2016-06-07T18:59:03.000Z","lastModified":"2026-06-17T00:44:57.000Z","status":"Modified","sourceIdentifier":"secalert@redhat.com","cvss":{"version":"3.0","score":9.8,"severity":"CRITICAL","vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"},"cwe":["CWE-20"],"affected":["apache/struts"],"epss":{"score":0.81873,"percentile":0.99645,"date":"2026-10-26","history":[{"date":"2026-09-21","score":0.80856,"percentile":0.99621},{"date":"2026-09-22","score":0.81873,"percentile":0.99632}]},"kev":{"listed":false},"exploits":{"count":2,"verified":true,"firstPublished":"2016-06-10","source":"Exploit-DB (https://gitlab.com/exploit-database/exploitdb)","entries":[{"edbId":43382,"kind":"exploit","title":"Apache Struts - REST Plugin With Dynamic Method Invocation Remote Code Execution","url":"https://www.exploit-db.com/exploits/43382","sourceUrl":"https://gitlab.com/exploit-database/exploitdb/-/blob/main/exploits/multiple/remote/43382.py","file":"exploits/multiple/remote/43382.py","published":"2017-06-06","added":"2017-12-21","updated":"2018-01-08","author":"nixawk","type":"remote","platform":"multiple","port":null,"verified":false,"codes":["CVE-2016-3087"],"tags":null,"aliases":null,"applicationUrl":null,"screenshotUrl":null,"referenceUrl":"https://github.com/nixawk/labs/blob/bf31676e55f0010adf9634269f86a61cc44e7102/CVE-2016-3087/"},{"edbId":39919,"kind":"exploit","title":"Apache Struts - REST Plugin With Dynamic Method Invocation Remote Code Execution (Metasploit)","url":"https://www.exploit-db.com/exploits/39919","sourceUrl":"https://gitlab.com/exploit-database/exploitdb/-/blob/main/exploits/multiple/remote/39919.rb","file":"exploits/multiple/remote/39919.rb","published":"2016-06-10","added":"2016-06-10","updated":"2016-06-10","author":"Metasploit","type":"remote","platform":"multiple","port":8080,"verified":true,"codes":["CVE-2016-3087"],"tags":"Metasploit Framework (MSF)","aliases":null,"applicationUrl":null,"screenshotUrl":null,"referenceUrl":null}]},"verdict":{"level":"urgent","text":"EPSS puts the probability of exploitation in the next 30 days at 81.9%, higher than 100% of all known CVEs. Patch or mitigate before the next change window."},"changes":[],"references":[{"url":"http://struts.apache.org/docs/s2-033.html","tags":["Vendor Advisory"],"source":"secalert@redhat.com"},{"url":"http://www-01.ibm.com/support/docview.wss?uid=swg21987854","source":"secalert@redhat.com"},{"url":"http://www.securityfocus.com/bid/90960","source":"secalert@redhat.com"},{"url":"http://www.securitytracker.com/id/1036017","source":"secalert@redhat.com"},{"url":"https://www.exploit-db.com/exploits/39919/","source":"secalert@redhat.com"},{"url":"http://struts.apache.org/docs/s2-033.html","tags":["Vendor Advisory"],"source":"af854a3a-2127-422b-91ae-364da2661108"},{"url":"http://www-01.ibm.com/support/docview.wss?uid=swg21987854","source":"af854a3a-2127-422b-91ae-364da2661108"},{"url":"http://www.securityfocus.com/bid/90960","source":"af854a3a-2127-422b-91ae-364da2661108"},{"url":"http://www.securitytracker.com/id/1036017","source":"af854a3a-2127-422b-91ae-364da2661108"},{"url":"https://www.exploit-db.com/exploits/39919/","source":"af854a3a-2127-422b-91ae-364da2661108"}],"sources":{"nvd":"https://nvd.nist.gov/vuln/detail/CVE-2016-3087","epss":"https://www.first.org/epss/","kev":"https://www.cisa.gov/known-exploited-vulnerabilities-catalog","exploitdb":"https://www.exploit-db.com/"},"licence":"CC BY 4.0 — link back to the CVE Explorer if you publish the results; upstream data remains subject to its own terms."}