{"id":"CVE-2012-0393","aliases":["EUVD-2022-4247","GHSA-hxqq-w4mr-mc62"],"status":"published","title":"Apache Struts's ParameterInterceptor component does not prevent access to public constructors","description":"The ParameterInterceptor component in Apache Struts before 2.3.1.1 does not prevent access to public constructors, which allows remote attackers to create or overwrite arbitrary files via a crafted parameter that triggers the creation of a Java object.","severity":{"version":"2.0","score":6.4,"vector":"AV:N/AC:L/Au:N/C:N/I:P/A:P","level":"medium","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-08","score":0.36319,"percentile":0.98493,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":true,"fix_available":true},"cwes":["CWE-264"],"published":"2012-01-08T15:00:00Z","modified":"2026-06-16T23:37:12Z","exploits":[{"source":"exploitdb","id":"EDB-18329","title":"Apache Struts 2 \u003c 2.3.1 - Multiple Vulnerabilities","type":"webapps","platform":"multiple","date":"2012-01-06","verified":true,"url":"https://www.exploit-db.com/exploits/18329"}],"fixes":[{"ecosystem":"Maven","package":"org.apache.struts.xwork:xwork-core","fixed_in":["2.2.3.1"],"sources":["ghsa","osv"]},{"ecosystem":"Maven","package":"org.apache.struts:struts2-core","fixed_in":["2.3.1.1"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"Maven","package":"org.apache.struts.xwork:xwork-core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.2.3.1"}]}]},{"source":"ghsa","ecosystem":"Maven","package":"org.apache.struts:struts2-core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.3.1.1"}]}]},{"source":"osv","ecosystem":"Maven","package":"org.apache.struts:struts2-core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.3.1.1"}]}],"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"]},{"source":"osv","ecosystem":"Maven","package":"org.apache.struts.xwork:xwork-core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.2.3.1"}]}],"versions":["2.2.1","2.2.1.1","2.2.3"]}],"products":[{"vendor":"apache","product":"struts"}],"references":[{"url":"http://www.exploit-db.com/exploits/18329","tags":["exploit","x_refsource_EXPLOIT-DB","x_transferred","Exploit","Third Party Advisory","web"]},{"url":"http://archives.neohapsis.com/archives/bugtraq/2012-01/0031.html","tags":["mailing-list","x_refsource_BUGTRAQ","x_transferred","Exploit","Third Party Advisory","web"]},{"url":"http://struts.apache.org/2.x/docs/version-notes-2311.html","tags":["x_refsource_CONFIRM","x_transferred","Vendor Advisory","web"]},{"url":"http://struts.apache.org/2.x/docs/s2-008.html","tags":["x_refsource_CONFIRM","x_transferred","Vendor Advisory","web"]},{"url":"https://www.sec-consult.com/files/20120104-0_Apache_Struts2_Multiple_Critical_Vulnerabilities.txt","tags":["x_refsource_MISC","x_transferred","Exploit","Third Party Advisory"]},{"url":"http://secunia.com/advisories/47393","tags":["third-party-advisory","x_refsource_SECUNIA","x_transferred","Third Party Advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2012-0393","tags":["advisory"]},{"url":"https://github.com/apache/struts/commit/25e50069d60434a30395e3a98357ffba2bed427e","tags":["web"]},{"url":"https://web.archive.org/web/20120612142634/https://sec-consult.com/files/20120104-0_Apache_Struts2_Multiple_Critical_Vulnerabilities.txt","tags":["web"]},{"url":"https://github.com/apache/struts/commit/9cad25f258bb2629d263f828574d2671366c238d","tags":["web"]},{"url":"https://web.archive.org/web/20140723153720/http://secunia.com/advisories/47393","tags":["web"]},{"url":"https://github.com/advisories/GHSA-hxqq-w4mr-mc62"},{"url":"https://github.com/apache/struts","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2012-0393","description":"The ParameterInterceptor component in Apache Struts before 2.3.1.1 does not prevent access to public constructors, which allows remote attackers to create or overwrite arbitrary files via a crafted parameter that triggers the creation of a Java object.","status":"published","published":"2012-01-08T15:00:00Z","modified":"2024-09-16T22:24:46.401Z","updated_at":"2026-11-02T14:34:52.638543Z"}],"euvd":[{"id":"EUVD-2022-4247","description":"The ParameterInterceptor component in Apache Struts before 2.3.1.1 does not prevent access to public constructors, which allows remote attackers to create or overwrite arbitrary files via a crafted parameter that triggers the creation of a Java object.","status":"published","published":"2012-01-08T15:00:00Z","modified":"2024-09-16T22:24:46Z","updated_at":"2026-11-03T00:55:03.452021Z"}],"ghsa":[{"id":"GHSA-hxqq-w4mr-mc62","title":"Apache Struts's ParameterInterceptor component does not prevent access to public constructors","description":"The ParameterInterceptor component in Apache Struts before 2.3.1.1 does not prevent access to public constructors, which allows remote attackers to create or overwrite arbitrary files via a crafted parameter that triggers the creation of a Java object.","status":"published","published":"2022-05-04T00:29:43Z","modified":"2024-03-14T21:23:15Z","updated_at":"2026-11-02T14:37:40.81935Z"}],"nvd":[{"id":"CVE-2012-0393","description":"The ParameterInterceptor component in Apache Struts before 2.3.1.1 does not prevent access to public constructors, which allows remote attackers to create or overwrite arbitrary files via a crafted parameter that triggers the creation of a Java object.","status":"published","published":"2012-01-08T15:55:01.42Z","modified":"2026-06-16T23:37:12.47Z","cvss":[{"version":"2.0","score":6.4,"vector":"AV:N/AC:L/Au:N/C:N/I:P/A:P","level":"medium","assessor":"primary"}],"cwes":["CWE-264"],"updated_at":"2026-11-02T14:02:13.468343Z"}],"osv":[{"id":"GHSA-hxqq-w4mr-mc62","title":"Apache Struts's ParameterInterceptor component does not prevent access to public constructors","description":"The ParameterInterceptor component in Apache Struts before 2.3.1.1 does not prevent access to public constructors, which allows remote attackers to create or overwrite arbitrary files via a crafted parameter that triggers the creation of a Java object.","status":"published","published":"2022-05-04T00:29:43Z","modified":"2024-12-03T06:02:47.456094Z","updated_at":"2026-11-02T15:46:49.621585Z"}]}}
