{"id":"CVE-2016-4438","aliases":["EUVD-2022-2421","GHSA-4prj-vw9j-v6pr"],"status":"published","title":"Arbitrary code execution in Apache Struts 2","description":"The REST plugin in Apache Struts 2 2.3.19 through 2.3.28.1 allows remote attackers to execute arbitrary code via a crafted expression.","severity":{"version":"3.0","score":9.8,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-09","score":0.16742,"percentile":0.97055,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":true,"fix_available":true},"cwes":["CWE-20"],"published":"2016-07-04T22:00:00Z","modified":"2026-10-24T10:30:25Z","exploits":[{"source":"pocgithub","id":"jason3e7/CVE-2016-4438","title":"jason3e7/CVE-2016-4438","date":"2016-06-16","url":"https://github.com/jason3e7/CVE-2016-4438"},{"source":"pocgithub","id":"tafamace/CVE-2016-4438","title":"tafamace/CVE-2016-4438","date":"2018-11-19","url":"https://github.com/tafamace/CVE-2016-4438"}],"fixes":[{"ecosystem":"Maven","package":"org.apache.struts:struts2-core","fixed_in":["2.3.29"],"sources":["ghsa","osv"]},{"ecosystem":"Maven","package":"org.apache.struts:struts2-rest-plugin","fixed_in":["2.3.29"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"Maven","package":"org.apache.struts:struts2-core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.3.19"},{"fixed":"2.3.29"}]}]},{"source":"ghsa","ecosystem":"Maven","package":"org.apache.struts:struts2-rest-plugin","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.3.19"},{"fixed":"2.3.29"}]}]},{"source":"osv","ecosystem":"Maven","package":"org.apache.struts:struts2-core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.3.19"},{"fixed":"2.3.29"}]}],"versions":["2.3.20","2.3.20.1","2.3.20.3","2.3.24","2.3.24.1","2.3.24.3","2.3.28","2.3.28.1"]},{"source":"osv","ecosystem":"Maven","package":"org.apache.struts:struts2-rest-plugin","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.3.19"},{"fixed":"2.3.29"}]}],"versions":["2.3.20","2.3.20.1","2.3.20.3","2.3.24","2.3.24.1","2.3.24.3","2.3.28","2.3.28.1"]}],"products":[{"vendor":"apache","product":"struts"}],"references":[{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=1348238","tags":["x_refsource_CONFIRM","x_transferred","Issue Tracking","Third Party Advisory","VDB Entry","report","web"]},{"url":"http://www.securityfocus.com/bid/91275","tags":["vdb-entry","x_refsource_BID","x_transferred","Third Party Advisory","advisory"]},{"url":"https://struts.apache.org/docs/s2-037.html","tags":["x_refsource_CONFIRM","x_transferred","Vendor Advisory","advisory","web"]},{"url":"http://jvndb.jvn.jp/jvndb/JVNDB-2016-000110","tags":["third-party-advisory","x_refsource_JVNDB","x_transferred","VDB Entry","Vendor Advisory","advisory","web"]},{"url":"http://www.oracle.com/technetwork/security-advisory/cpujul2017-3236622.html","tags":["x_refsource_CONFIRM","x_transferred","advisory"]},{"url":"http://jvn.jp/en/jp/JVN07710476/index.html","tags":["third-party-advisory","x_refsource_JVN","x_transferred","Vendor Advisory","advisory","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2016-4438","tags":["advisory"]},{"url":"https://github.com/apache/struts/commit/6d7ac40dcede1793a4534a3dc249fd562d495e8c","tags":["web"]},{"url":"https://github.com/apache/struts/commit/76eb8f38a33ad0f1f48464ee1311559c8d52dd6d","tags":["web"]},{"url":"https://github.com/apache/struts/commit/c9c21378f2fb2ff21355c128c45e106ebd87ad7c","tags":["web"]},{"url":"https://github.com/apache/struts/commit/deefeffd11425f0cd0b797cd86a9b3550234262b","tags":["web"]},{"url":"https://github.com/advisories/GHSA-4prj-vw9j-v6pr"},{"url":"https://github.com/apache/struts","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2016-4438","description":"The REST plugin in Apache Struts 2 2.3.19 through 2.3.28.1 allows remote attackers to execute arbitrary code via a crafted expression.","status":"published","published":"2016-07-04T22:00:00Z","modified":"2024-08-06T00:32:24.621Z","updated_at":"2026-11-02T14:33:35.149563Z"}],"euvd":[{"id":"EUVD-2022-2421","description":"The REST plugin in Apache Struts 2 2.3.19 through 2.3.28.1 allows remote attackers to execute arbitrary code via a crafted expression.","status":"published","published":"2016-07-04T22:00:00Z","modified":"2024-08-06T00:32:24Z","updated_at":"2026-11-03T02:22:46.329763Z"}],"ghsa":[{"id":"GHSA-4prj-vw9j-v6pr","title":"Arbitrary code execution in Apache Struts 2","description":"The REST plugin in Apache Struts 2 2.3.19 through 2.3.28.1 allows remote attackers to execute arbitrary code via a crafted expression.","status":"published","published":"2022-05-14T00:54:13Z","modified":"2023-12-28T23:22:05Z","cvss":[{"version":"3.0","score":9.8,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-20"],"updated_at":"2026-11-02T14:37:28.753349Z"}],"nvd":[{"id":"CVE-2016-4438","description":"The REST plugin in Apache Struts 2 2.3.19 through 2.3.28.1 allows remote attackers to execute arbitrary code via a crafted expression.","status":"published","published":"2016-07-04T22:59:09.1Z","modified":"2026-06-17T00:47:33.507Z","cvss":[{"version":"3.0","score":9.8,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"primary"},{"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-20"],"updated_at":"2026-11-02T14:03:27.736698Z"}],"osv":[{"id":"CVE-2016-4438","description":"The REST plugin in Apache Struts 2 2.3.19 through 2.3.28.1 allows remote attackers to execute arbitrary code via a crafted expression.","status":"published","published":"2016-07-04T22:59:09.1Z","modified":"2026-10-24T10:30:25.427211375Z","cvss":[{"version":"3.0","score":9.8,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T15:44:02.454775Z"},{"id":"GHSA-4prj-vw9j-v6pr","title":"Arbitrary code execution in Apache Struts 2","description":"The REST plugin in Apache Struts 2 2.3.19 through 2.3.28.1 allows remote attackers to execute arbitrary code via a crafted expression.","status":"published","published":"2022-05-14T00:54:13Z","modified":"2024-02-16T08:22:16.439344Z","cvss":[{"version":"3.0","score":9.8,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-20"],"updated_at":"2026-11-02T15:46:37.148947Z"}]}}
