{"id":"CVE-2014-0094","published":"2014-03-10T14:00:00Z","modified":"2024-08-06T09:05:37Z","title":"The ParametersInterceptor in Apache Struts before 2.3.16.2 allows remote attackers to \"manipulate\" the ClassLoader via…","vendor":null,"product":null,"tier":"core","eol":null,"description":{"text":"The ParametersInterceptor in Apache Struts before 2.3.16.2 allows remote attackers to \"manipulate\" the ClassLoader via the class parameter, which is passed to the getClass method.","provenance":"source","from":"CVE.org"},"summary":{"text":"The ParametersInterceptor component of Apache Struts, in versions before 2.3.16.2, lets the ClassLoader be manipulated through the class parameter, which is passed to the getClass method. A remote attacker can exploit this by sending crafted requests that include the class parameter, with no stated requirement for authentication or user interaction.","provenance":"ai","model":"claude-haiku-5-5","generatedAt":"2026-10-29T07:18:08Z"},"cvss":null,"epss":{"score":0.99388,"percentile":0.9994,"date":"2026-10-28","provenance":"source"},"kev":null,"vulncheckKev":{"dateAdded":"2022-05-11","exploitedFirstSeen":"2022-05-11","ransomware":false,"evidence":[{"url":"https://blog.checkpoint.com/security/april-2022s-most-wanted-malware-a-shake-up-in-the-index-but-emotet-is-still-on-top/","date":"2022-05-11"},{"url":"https://www.sonatype.com/hubfs/SSCR-2024/SSCR_2024-FINAL-10-10-24.pdf","date":"2024-10-10"}],"evidenceTotal":2,"provenance":"source"},"exploited":true,"otx":{"pulseCount":0,"pulses":[],"provenance":"machine"},"cwes":[],"references":[{"url":"http://packetstormsecurity.com/files/127215/VMware-Security-Advisory-2014-0007.html","tags":["x_refsource_MISC"]},{"url":"http://secunia.com/advisories/59178","tags":["third-party-advisory","x_refsource_SECUNIA"]},{"url":"http://www.vmware.com/security/advisories/VMSA-2014-0007.html","tags":["x_refsource_CONFIRM"]},{"url":"http://www.konakart.com/downloads/ver-7-3-0-0-whats-new","tags":["x_refsource_CONFIRM"]},{"url":"http://www.securityfocus.com/archive/1/531362/100/0/threaded","tags":["mailing-list","x_refsource_BUGTRAQ"]},{"url":"http://www.oracle.com/technetwork/topics/security/cpuapr2015-2365600.html","tags":["x_refsource_CONFIRM"]},{"url":"http://www.huawei.com/en/security/psirt/security-bulletins/security-advisories/hw-350733.htm","tags":["x_refsource_CONFIRM"]},{"url":"http://jvn.jp/en/jp/JVN19294237/index.html","tags":["third-party-advisory","x_refsource_JVN"]},{"url":"http://struts.apache.org/release/2.3.x/docs/s2-020.html","tags":["x_refsource_CONFIRM"]},{"url":"http://jvndb.jvn.jp/jvndb/JVNDB-2014-000045","tags":["third-party-advisory","x_refsource_JVNDB"]},{"url":"http://www-01.ibm.com/support/docview.wss?uid=swg21676706","tags":["x_refsource_CONFIRM"]},{"url":"http://secunia.com/advisories/56440","tags":["third-party-advisory","x_refsource_SECUNIA"]},{"url":"http://www.securitytracker.com/id/1029876","tags":["vdb-entry","x_refsource_SECTRACK"]},{"url":"http://www.securityfocus.com/archive/1/532549/100/0/threaded","tags":["mailing-list","x_refsource_BUGTRAQ"]},{"url":"http://www.securityfocus.com/bid/65999","tags":["vdb-entry","x_refsource_BID"]}],"techniques":[],"reports":[],"affected":[{"ecosystem":"Maven","package":"org.apache.struts:struts2-core","vulnerableRanges":[">=2.0.0, <2.3.16.2"],"patched":["2.3.16.2"],"from":["GHSA-vrwc-qjmw-5rjm"],"provenance":"source"},{"ecosystem":"Maven","package":"org.apache.struts.xwork:xwork-core","vulnerableRanges":[">=2.0.0, <2.3.16.2"],"patched":["2.3.16.2"],"from":["GHSA-vrwc-qjmw-5rjm"],"provenance":"source"}],"advisories":[{"id":"GHSA-vrwc-qjmw-5rjm","url":"https://github.com/advisories/GHSA-vrwc-qjmw-5rjm","severity":"MODERATE","ecosystem":"Maven","package":"org.apache.struts:struts2-core","vulnerableRanges":[">=2.0.0, <2.3.16.2"],"patched":["2.3.16.2"],"provenance":"source","from":"GHSA"},{"id":"GHSA-vrwc-qjmw-5rjm","url":"https://github.com/advisories/GHSA-vrwc-qjmw-5rjm","severity":"MODERATE","ecosystem":"Maven","package":"org.apache.struts.xwork:xwork-core","vulnerableRanges":[">=2.0.0, <2.3.16.2"],"patched":["2.3.16.2"],"provenance":"source","from":"GHSA"}],"euvd":{"id":"EUVD-2022-5427","url":"https://euvd.enisa.europa.eu/vulnerability/EUVD-2022-5427","exploited":false,"exploitedSince":null,"provenance":"source"},"exploits":[{"id":33142,"url":"https://www.exploit-db.com/exploits/33142","title":"Apache Struts - ClassLoader Manipulation Remote Code Execution (Metasploit)","type":"remote","platform":"multiple","date":"2014-05-02","verified":true,"provenance":"source"},{"id":41690,"url":"https://www.exploit-db.com/exploits/41690","title":"Apache Struts < 1.3.10 / < 2.3.16.2 - ClassLoader Manipulation Remote Code Execution (Metasploit)","type":"remote","platform":"multiple","date":"2014-03-06","verified":true,"provenance":"source"}],"exploitSources":{"exploitdb":{"count":2,"earliest":"2014-03-06"},"pocGithub":{"count":2,"skipped":0,"earliest":"2014-04-27","earliestUrl":"https://github.com/HasegawaTadamitsu/CVE-2014-0094-test-program-for-struts1","repos":[{"name":"HasegawaTadamitsu/CVE-2014-0094-test-program-for-struts1","url":"https://github.com/HasegawaTadamitsu/CVE-2014-0094-test-program-for-struts1","stars":1,"created":"2014-04-27"},{"name":"y0d3n/CVE-2014-0094","url":"https://github.com/y0d3n/CVE-2014-0094","stars":1,"created":"2023-06-14"}]},"metasploit":[{"name":"Apache Struts ClassLoader Manipulation Remote Code Execution","module":"exploit/multi/http/struts_code_exec_classloader","type":"exploit","disclosureDate":"2014-03-06","url":"https://github.com/rapid7/metasploit-framework/blob/master/modules/exploits/multi/http/struts_code_exec_classloader.rb"}],"first":{"date":"2014-03-06","source":"Exploit-DB","url":"https://www.exploit-db.com/exploits/41690"},"provenance":"source"},"exploitRefs":["http://packetstormsecurity.com/files/127215/VMware-Security-Advisory-2014-0007.html"],"flow":[],"timeline":[{"date":"2014-03-06","kind":"exploit-public","label":"First public exploit: Exploit-DB (EDB-41690); later: Metasploit 2014-03-06, PoC-in-GitHub 2014-04-27","url":"https://www.exploit-db.com/exploits/41690","provenance":"source"},{"date":"2014-03-10","kind":"published","label":"Published (CVE.org)","url":"https://www.cve.org/CVERecord?id=CVE-2014-0094","provenance":"source"},{"date":"2022-05-11","kind":"exploited-reported","label":"Exploitation first reported (VulnCheck KEV evidence)","url":"https://blog.checkpoint.com/security/april-2022s-most-wanted-malware-a-shake-up-in-the-index-but-emotet-is-still-on-top/","provenance":"source"}],"speed":{"daysToPublicExploit":null,"firstExploitFrom":"Exploit-DB","daysToKev":null},"priority":{"score":60.0,"factors":[{"name":"In a KEV catalog","points":35.0,"detail":"listed in VulnCheck KEV"},{"name":"Recent KEV listing","points":0.0,"detail":"added 1632 days ago"},{"name":"Known ransomware use","points":0.0,"detail":"not known"},{"name":"EPSS percentile","points":19.99,"detail":"percentile 0.9994"},{"name":"Named in threat reports","points":0.0,"detail":"0 reports"},{"name":"Public exploit code","points":5.0,"detail":"2 Exploit-DB entries; 1 NVD exploit link; 2 PoC-in-GitHub repos; 1 Metasploit module"},{"name":"Mentioned in OTX pulses","points":0.0,"detail":"0 pulses"},{"name":"CVSS severity","points":0.0,"detail":"no CVSS"},{"name":"End-of-life product","points":0.0,"detail":"supported or unknown"}]},"lineage":{"familyId":"fam-org-apache-struts-struts2-core-cve-2012-0393","parents":[{"from":"CVE-2012-0393","to":"CVE-2014-0094","relation":"related","confidence":"medium","kind":"lineage","evidence":[{"kind":"same-code","provenance":"machine","files":["core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java","xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ParametersInterceptor.java"],"commits":["https://github.com/apache/struts/commit/25e50069d60434a30395e3a98357ffba2bed427e","https://github.com/apache/struts/commit/9cad25f258bb2629d263f828574d2671366c238d","https://github.com/apache/struts/commit/2e2da292166adbc78c4cb1e308b30ddb4fba6d3f","https://github.com/apache/struts/commit/6315241719be167542962da436b38782ed730c62"],"basis":"shared function","functions":["CookieInterceptor","ParametersInterceptor","getExcludeParamsSet","intercept"]}]},{"from":"CVE-2012-0394","to":"CVE-2014-0094","relation":"related","confidence":"medium","kind":"lineage","evidence":[{"kind":"same-code","provenance":"machine","files":["core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java","xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ParametersInterceptor.java"],"commits":["https://github.com/apache/struts/commit/9cad25f258bb2629d263f828574d2671366c238d","https://github.com/apache/struts/commit/2e2da292166adbc78c4cb1e308b30ddb4fba6d3f","https://github.com/apache/struts/commit/6315241719be167542962da436b38782ed730c62"],"basis":"shared function","functions":["CookieInterceptor","ParametersInterceptor","getExcludeParamsSet","intercept"]}]},{"from":"CVE-2012-4387","to":"CVE-2014-0094","relation":"related","confidence":"medium","kind":"lineage","evidence":[{"kind":"same-code","provenance":"machine","files":["xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ParametersInterceptor.java"],"commits":["https://github.com/apache/struts/commit/80e03182d66d9e6ab18f9a9a9b3c42725a1c89e9","https://github.com/apache/struts/commit/87935af56a27235e9399308ee1fcfb74f8edcefa","https://github.com/apache/struts/commit/2e2da292166adbc78c4cb1e308b30ddb4fba6d3f","https://github.com/apache/struts/commit/6315241719be167542962da436b38782ed730c62"],"basis":"shared function","functions":["ParametersInterceptor"]}]}],"children":[{"from":"CVE-2014-0094","to":"CVE-2014-0112","relation":"incomplete-fix","confidence":"high","kind":"lineage","evidence":[{"kind":"text","provenance":"source","relation":"incomplete-fix","quote":"NOTE: this vulnerability exists because of an incomplete fix for CVE-2014-0094.","from":"CVE.org","in":"CVE-2014-0112"},{"kind":"similar","provenance":"machine","score":0.84,"basis":"same package + description similarity"}]},{"from":"CVE-2014-0094","to":"CVE-2014-0113","relation":"incomplete-fix","confidence":"high","kind":"lineage","evidence":[{"kind":"text","provenance":"source","relation":"incomplete-fix","quote":"NOTE: this vulnerability exists because of an incomplete fix for CVE-2014-0094.","from":"CVE.org","in":"CVE-2014-0113"},{"kind":"similar","provenance":"machine","score":0.46,"basis":"same package + description similarity"}]},{"from":"CVE-2014-0094","to":"CVE-2014-0116","relation":"related","confidence":"medium","kind":"lineage","evidence":[{"kind":"same-code","provenance":"machine","files":["core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java"],"commits":["https://github.com/apache/struts/commit/2e2da292166adbc78c4cb1e308b30ddb4fba6d3f","https://github.com/apache/struts/commit/6315241719be167542962da436b38782ed730c62","https://github.com/apache/struts/commit/1a668af7f1ffccea4a3b46d8d8c1fe1c7331ff02"],"basis":"shared function","functions":["CookieInterceptor","intercept"]},{"kind":"similar","provenance":"machine","score":0.45,"basis":"same package + description similarity"}]},{"from":"CVE-2014-0094","to":"CVE-2015-1831","relation":"related","confidence":"medium","kind":"lineage","evidence":[{"kind":"same-code","provenance":"machine","files":["core/src/main/resources/struts-default.xml"],"commits":["https://github.com/apache/struts/commit/2e2da292166adbc78c4cb1e308b30ddb4fba6d3f","https://github.com/apache/struts/commit/6315241719be167542962da436b38782ed730c62","https://github.com/apache/struts/commit/d832747d647df343ed07a58b1b5e540a05a4d51b"],"basis":"rarely changed file"}]}],"packageHistory":[{"cve":"CVE-2013-2115","published":"2013-07-10","fixed":"2.3.14.2","kev":false},{"cve":"CVE-2013-2134","published":"2013-07-16","fixed":"2.3.14.3","kev":false},{"cve":"CVE-2013-2135","published":"2013-07-16","fixed":"2.3.14.3","kev":false,"link":{"from":"CVE-2013-2135","to":"CVE-2014-0094","relation":"successor","confidence":"low","kind":"sequence","evidence":[{"kind":"version-step","provenance":"source","package":"Maven:org.apache.struts.xwork:xwork-core","fromFixed":"2.3.14.3","toFixed":"2.3.16.2","daysApart":237}]}},{"cve":"CVE-2014-0094","published":"2014-03-10","fixed":"2.3.16.2","kev":false},{"cve":"CVE-2012-0394","published":"2012-01-08","fixed":"2.3.18","kev":false},{"cve":"CVE-2015-1831","published":"2015-07-16","fixed":"2.3.20.1","kev":false},{"cve":"CVE-2016-4430","published":"2016-07-04","fixed":"2.3.29","kev":false}],"package":"Maven:org.apache.struts.xwork:xwork-core"}}