{"id":"CVE-2014-0112","aliases":["EUVD-2022-4820","GHSA-prjv-jj26-wf8h"],"status":"published","title":"ClassLoader manipulation in Apache Struts","description":"ParametersInterceptor in Apache Struts before 2.3.20 does not properly restrict access to the getClass method, which allows remote attackers to \"manipulate\" the ClassLoader and execute arbitrary code via a crafted request. NOTE: this vulnerability exists because of an incomplete fix for CVE-2014-0094.","severity":{"version":"2.0","score":7.5,"vector":"AV:N/AC:L/Au:N/C:P/I:P/A:P","level":"high","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-07","score":0.98056,"percentile":0.99911,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":true,"fix_available":true},"cwes":["CWE-264"],"published":"2014-04-29T10:00:00Z","modified":"2026-06-17T00:02:17Z","exploits":[{"source":"exploitdb","id":"EDB-33142","title":"Apache Struts - ClassLoader Manipulation Remote Code Execution (Metasploit)","type":"remote","platform":"multiple","date":"2014-05-02","verified":true,"url":"https://www.exploit-db.com/exploits/33142"},{"source":"exploitdb","id":"EDB-41690","title":"Apache Struts \u003c 1.3.10 / \u003c 2.3.16.2 - ClassLoader Manipulation Remote Code Execution (Metasploit)","type":"remote","platform":"multiple","date":"2014-03-06","verified":true,"url":"https://www.exploit-db.com/exploits/41690"},{"source":"metasploit","id":"exploit/multi/http/struts_code_exec_classloader","title":"Apache Struts ClassLoader Manipulation Remote Code Execution","type":"exploit","platform":"Linux,Windows","date":"2014-03-06","verified":true,"url":"https://www.rapid7.com/db/modules/exploit/multi/http/struts_code_exec_classloader"}],"fixes":[{"ecosystem":"Maven","package":"org.apache.struts:struts2-core","fixed_in":["2.3.20"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"Maven","package":"org.apache.struts:struts2-core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.3.20"}]}]},{"source":"osv","ecosystem":"Maven","package":"org.apache.struts:struts2-core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.3.20"}]}],"versions":["2.0.11","2.0.11.1","2.0.11.2","2.0.12","2.0.14","2.0.5","2.0.6","2.0.8","2.0.9","2.1.2","2.1.6","2.1.8","2.1.8.1","2.2.1","2.2.1.1","2.2.3","2.2.3.1","2.3.1","2.3.1.1","2.3.1.2","2.3.12","2.3.14","2.3.14.1","2.3.14.2","2.3.14.3","2.3.15","2.3.15.1","2.3.15.2","2.3.15.3","2.3.16","2.3.16.1","2.3.16.2","2.3.16.3","2.3.3","2.3.4","2.3.4.1","2.3.7","2.3.8"]}],"products":[{"vendor":"apache","product":"struts"}],"references":[{"url":"http://packetstormsecurity.com/files/127215/VMware-Security-Advisory-2014-0007.html","tags":["x_refsource_MISC","x_transferred","Third Party Advisory","VDB Entry","web"]},{"url":"https://cwiki.apache.org/confluence/display/WW/S2-021","tags":["x_refsource_CONFIRM","x_transferred","Patch","Vendor Advisory","web"]},{"url":"http://secunia.com/advisories/59178","tags":["third-party-advisory","x_refsource_SECUNIA","x_transferred","Permissions Required"]},{"url":"http://www.vmware.com/security/advisories/VMSA-2014-0007.html","tags":["x_refsource_CONFIRM","x_transferred","Third Party Advisory","web"]},{"url":"http://www.securityfocus.com/archive/1/531952/100/0/threaded","tags":["mailing-list","x_refsource_BUGTRAQ","x_transferred","Third Party Advisory","VDB Entry"]},{"url":"http://secunia.com/advisories/59500","tags":["third-party-advisory","x_refsource_SECUNIA","x_transferred","Permissions Required"]},{"url":"http://www.oracle.com/technetwork/topics/security/cpuapr2015-2365600.html","tags":["x_refsource_CONFIRM","x_transferred","Third Party Advisory","web"]},{"url":"http://www.securityfocus.com/bid/67064","tags":["vdb-entry","x_refsource_BID","x_transferred","Third Party Advisory","VDB Entry"]},{"url":"http://jvn.jp/en/jp/JVN19294237/index.html","tags":["third-party-advisory","x_refsource_JVN","x_transferred","Third Party Advisory","VDB Entry","web"]},{"url":"http://jvndb.jvn.jp/jvndb/JVNDB-2014-000045","tags":["third-party-advisory","x_refsource_JVNDB","x_transferred","Third Party Advisory","VDB Entry","web"]},{"url":"http://www-01.ibm.com/support/docview.wss?uid=swg21676706","tags":["x_refsource_CONFIRM","x_transferred","Third Party Advisory","web"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=1091939","tags":["x_refsource_CONFIRM","x_transferred","Issue Tracking","web"]},{"url":"http://www.securityfocus.com/archive/1/532549/100/0/threaded","tags":["mailing-list","x_refsource_BUGTRAQ","x_transferred","Third Party Advisory","VDB Entry"]},{"url":"https://access.redhat.com/errata/RHSA-2019:0910","tags":["vendor-advisory","x_refsource_REDHAT","x_transferred","Third Party Advisory","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2014-0112","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-prjv-jj26-wf8h"},{"url":"https://github.com/apache/struts","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2014-0112","description":"ParametersInterceptor in Apache Struts before 2.3.20 does not properly restrict access to the getClass method, which allows remote attackers to \"manipulate\" the ClassLoader and execute arbitrary code via a crafted request. NOTE: this vulnerability exists because of an incomplete fix for CVE-2014-0094.","status":"published","published":"2014-04-29T10:00:00Z","modified":"2024-08-06T09:05:38.849Z","updated_at":"2026-11-02T14:33:47.330011Z"}],"euvd":[{"id":"EUVD-2022-4820","description":"ParametersInterceptor in Apache Struts before 2.3.20 does not properly restrict access to the getClass method, which allows remote attackers to \"manipulate\" the ClassLoader and execute arbitrary code via a crafted request. NOTE: this vulnerability exists because of an incomplete fix for CVE-2014-0094.","status":"published","published":"2014-04-29T10:00:00Z","modified":"2024-08-06T09:05:38Z","updated_at":"2026-11-03T01:57:22.468358Z"}],"ghsa":[{"id":"GHSA-prjv-jj26-wf8h","title":"ClassLoader manipulation in Apache Struts","description":"ParametersInterceptor in Apache Struts before 2.3.20 does not properly restrict access to the getClass method, which allows remote attackers to \"manipulate\" the ClassLoader and execute arbitrary code via a crafted request. NOTE: this vulnerability exists because of an incomplete fix for CVE-2014-0094.","status":"published","published":"2022-05-14T00:54:16Z","modified":"2023-12-28T19:02:22Z","updated_at":"2026-11-02T14:37:28.753349Z"}],"nvd":[{"id":"CVE-2014-0112","description":"ParametersInterceptor in Apache Struts before 2.3.20 does not properly restrict access to the getClass method, which allows remote attackers to \"manipulate\" the ClassLoader and execute arbitrary code via a crafted request. NOTE: this vulnerability exists because of an incomplete fix for CVE-2014-0094.","status":"published","published":"2014-04-29T10:37:03.67Z","modified":"2026-06-17T00:02:17.95Z","cvss":[{"version":"2.0","score":7.5,"vector":"AV:N/AC:L/Au:N/C:P/I:P/A:P","level":"high","assessor":"primary"}],"cwes":["CWE-264"],"updated_at":"2026-11-02T14:02:54.082915Z"}],"osv":[{"id":"GHSA-prjv-jj26-wf8h","title":"ClassLoader manipulation in Apache Struts","description":"ParametersInterceptor in Apache Struts before 2.3.20 does not properly restrict access to the getClass method, which allows remote attackers to \"manipulate\" the ClassLoader and execute arbitrary code via a crafted request. NOTE: this vulnerability exists because of an incomplete fix for CVE-2014-0094.","status":"published","published":"2022-05-14T00:54:16Z","modified":"2024-12-06T05:39:13.806224Z","updated_at":"2026-11-02T15:46:53.700556Z"}]}}
