{"answers":{"affected":"It affects 1 product.","exploited":"There is no known exploitation of CVE-2026-104711 in the wild and no public exploit code.","fix":"No fix has been published for CVE-2026-104711 yet. Limit exposure of the affected software until one is available.","what":"CVE-2026-104711 is a critical code injection vulnerability in Apache Struts, published on 5 Oct 2026. An attacker can exploit it over the internet without logging in, with no action from the victim."},"fix_prompt":"Check this codebase for CVE-2026-104711 and fix it if it is affected.\n\nWhat it is: CVE-2026-104711 is a critical code injection vulnerability in Apache Struts, published on 5 Oct 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.\nExploitation: There is no known exploitation of CVE-2026-104711 in the wild and no public exploit code.\n\nAffected product: Apache Struts. No package-level version data is available, so check the vendor advisory linked from the reference page.\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2026-104711/ (Markdown: https://insights.sbomify.com/CVE-2026-104711/index.md)","id":"CVE-2026-104711","markdown":"https://insights.sbomify.com/CVE-2026-104711/index.md","name":"CVE-2026-104711","record":{"aliases":["GHSA-wfm5-pq4p-gff9"],"analysis":{"component_type":"library","fix_type":"upgrade","impacts":["code_execution"],"network_reachable":"yes","non_default_config":true,"product_category":"Java web framework","requires_auth":"none","summary":"Attackers can achieve remote code execution via OGNL injection in Apache Struts if the legacy RESTful action mapper is enabled.","user_interaction":"not_required","vuln_class":"code_injection"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"apache","cpe":[{"product":"struts","vendor":"apache"}],"cvss":{"score":9.8,"severity":"critical","source":"cisa-adp","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","version":"3.1"},"cwes":[{"id":"CWE-917","name":"Improper Neutralization of Special Elements used in an Expression Language Statement"}],"description":"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.","ecosystems":[],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"none_known"},"has_fix":false,"headline":"Apache Struts: OGNL injection in the legacy RESTful action mapper","id":"CVE-2026-104711","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":null,"product":"apache:struts","products":["apache:struts"],"type":"code_injection","year":"2026"},"n_packages":0,"n_references":1,"next":{"headline":"Apache Struts: Disproportionate response size when rendering BigDecimal request parameters","id":"CVE-2026-104712"},"packages":[],"prev":{"headline":"Mitel MiVoice Office 400 view system files path traversal","id":"CVE-2026-104706"},"products":["Apache Struts"],"published":"2026-10-05","related":[{"cvss_score":9.8,"headline":"Apache Struts Remote Code Execution","id":"CVE-2020-17530","kev_date_added":"2021-11-03","published":"2020-12-11"},{"cvss_score":9.8,"headline":"Apache Struts 1 Improper Input Validation","id":"CVE-2017-9791","kev_date_added":"2022-02-10","published":"2017-07-10"},{"cvss_score":9.8,"headline":"Apache Struts Remote Code Execution","id":"CVE-2017-5638","kev_date_added":"2021-11-03","published":"2017-03-11"},{"cvss_score":9.8,"headline":"Apache Struts 2 Improper Input Validation","id":"CVE-2012-0391","kev_date_added":"2022-01-21","published":"2012-01-08"},{"cvss_score":8.1,"headline":"Apache Struts Remote Code Execution","id":"CVE-2018-11776","kev_date_added":"2021-11-03","published":"2018-08-22"},{"cvss_score":8.1,"headline":"Apache Struts Deserialization of Untrusted Data","id":"CVE-2017-9805","kev_date_added":"2021-11-03","published":"2017-09-15"},{"cvss_score":8.1,"headline":"Apache Struts Command Injection","id":"CVE-2016-3081","kev_date_added":"2026-10-08","published":"2016-04-26"}],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"US public information, NVD API terms","name":"NVD"},{"class":"attribution","licence":"CWE Terms of Use","name":"CWE (MITRE)"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"}],"ssvc":{"automatable":"yes","exploitation":"none","technical_impact":"total"},"state":"PUBLISHED","updated":"2026-10-06","vendors":["Apache Software Foundation"]},"summary":"Attackers can achieve remote code execution via OGNL injection in Apache Struts if the legacy RESTful action mapper is enabled.","url":"https://insights.sbomify.com/CVE-2026-104711/"}