{"id":"CVE-2026-104711","summary":"Apache Struts: OGNL injection in the legacy RESTful action mapper","details":"Improper neutralization of special elements used in an expression language statement ('Expression Language Injection') vulnerability in Apache Struts. If the application is configured to use the legacy RESTful action mapper, a crafted request can inject an OGNL expression that may lead to remote code execution. Struts 7 is affected only when the OGNL allowlist is disabled; it is enabled by default. Applications using the default action mapper, the restful2 mapper, or the Struts REST plugin are not affected.\n\nThis issue affects Apache Struts: from 2.0.0 through 2.3.37, from 2.5.0 through 2.5.33, from 6.0.0 through 6.11.0, from 7.0.0 through 7.3.0.\n\nUsers are recommended to upgrade to version 6.12.0 or 7.4.0, which fixes the issue.","modified":"2026-10-10T02:47:26.750554334Z","published":"2026-10-05T18:35:10.026Z","database_specific":{"cwe_ids":["CWE-917"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/104xxx/CVE-2026-104711.json","unresolved_ranges":[{"extracted_events":[{"introduced":"2.0.0"},{"last_affected":"2.3.37"},{"introduced":"2.5.0"},{"last_affected":"2.5.33"},{"introduced":"6.0.0"},{"last_affected":"6.11.0"},{"introduced":"7.0.0"},{"last_affected":"7.3.0"}],"source":"AFFECTED_FIELD"}],"cna_assigner":"apache"},"references":[{"type":"WEB","url":"http://www.openwall.com/lists/oss-security/2026/10/05/10"},{"type":"WEB","url":"https://repo.maven.apache.org/maven2"},{"type":"ADVISORY","url":"https://cwiki.apache.org/confluence/display/WW/S2-075"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/104xxx/CVE-2026-104711.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-104711"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/apache/struts","events":[{"introduced":"2c0a197cea8fdc7d8cda5eeaa15a1c76507ac0a5"},{"last_affected":"60a1a2642ae7ddf74c0062fe37b3b57f83a0588e"},{"introduced":"0"},{"last_affected":"ca8d57c538136983a0180ac508ebcfabaf73f839"},{"introduced":"68fb49c10e083dce829476778eec726fc90c8c38"},{"fixed":"07aea27ba59aa8c4d9fda05bfeec3bf80f2a0473"},{"introduced":"1d95543fbf2c873d5dab1773f951c38e3220b4e5"},{"fixed":"7ba6ef01a9215e8ce6ce5a9e82f5b418714f2920"}],"database_specific":{"source":"CPE_RANGE","cpe":"cpe:2.3:a:apache:struts:*:*:*:*:*:*:*:*","extracted_events":[{"introduced":"2.0.0"},{"last_affected":"2.3.37"},{"introduced":"2.5.0"},{"last_affected":"2.5.33"},{"introduced":"6.0.0"},{"fixed":"6.12.0"},{"introduced":"7.0.0"},{"fixed":"7.4.0"}]}}],"versions":["STRUTS_6_8_0","STRUTS_6_7_4","STRUTS_6_7_3","STRUTS_7_0_3","STRUTS_6_7_2","STRUTS_7_0_2","STRUTS_6_7_1","STRUTS_7_0_1","STRUTS_6_7_0","STRUTS_7_0_0","STRUTS_6_6_1","STRUTS_6_6_0","STRUTS_6_5_0","STRUTS_6_4_0","STRUTS_2_3_37","STRUTS_2_5_33","STRUTS_6_3_0_1","STRUTS_6_2_0","STRUTS_2_5_32","STRUTS_6_3_0","STRUTS_2_5_31","STRUTS_6_1_1","STRUTS_6_1_0","STRUTS_6_0_3","STRUTS_6_0_2","STRUTS_6_0_1","STRUTS_6_0_0","STRUTS_2_5_30","STRUTS_2_5_29","STRUTS_2_5_28_3","STRUTS_2_5_28_2","STRUTS_2_5_28_1","STRUTS_2_5_28","STRUTS_2_5_27","STRUTS_2_5_26","STRUTS_2_5_25","STRUTS_2_5_24","STRUTS_2_5_23","STRUTS_2_5_22","STRUTS_2_5_21","STRUTS_2_5_20","STRUTS_2_5_19","STRUTS_2_5_18","STRUTS_2_3_36","STRUTS_2_5_17","STRUTS_2_3_35","STRUTS_2_5_16","STRUTS_2_5_15","STRUTS_2_5_14_1","STRUTS_2_5_14","STRUTS_2_5_13","STRUTS_2_3_34","STRUTS_2_3_33","STRUTS_2_5_12","STRUTS_2_5_11","STRUTS_2_3_32","STRUTS_2_5_10","STRUTS_2_5_9","STRUTS_2_5_8","STRUTS_2_5_7","STRUTS_2_5_6","STRUTS_2_5_5","STRUTS_2_5_4","STRUTS_2_3_31","STRUTS_2_5_3","STRUTS_2_3_30","STRUTS_2_3_29","STRUTS_2_3_28","STRUTS_2_3_24_1","STRUTS_2_3_27","STRUTS_2_3_26","STRUTS_2_3_25","STRUTS_2_5_BETA2","STRUTS_2_3_24","STRUTS_2_5_BETA1"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-104711.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"}]}