# CVE-2018-11776: Apache Struts Remote Code Execution Vulnerability - Exploited (CISA KEV): yes, added 2021-11-03 - Published: 2018-08-22 - CVSS: 8.1 HIGH (v3.1) - EPSS: 100.0% (100th percentile) - CWE: CWE-20 Apache Struts versions 2.3 to 2.3.34 and 2.5 to 2.5.16 suffer from possible Remote Code Execution when alwaysSelectFullNamespace is true (either by user or a plugin like Convention Plugin) and then: results are used with no namespace and in same time, its upper package have no or wildcard namespace and similar to results, same possibility when using url tag which doesn't have value and action set and in same time, its upper package have no or wildcard namespace. ## Edge WAF coverage (claimed by vendors, not measured) | Vendor | Status | First rule | Days after publication | |---|---|---|---| | Cloudflare | Before feed history | — | — | | AWS | Before feed history | — | — | | Microsoft Azure | No public claim | — | — | | Google Cloud | Before feed history | — | — | | Fastly | Before feed history | — | — | | F5 | Rule published | 2023-02-14 | — | | Akamai | No public source | — | — | | OWASP CRS | Rule published | 2019-09-24 | 398 | ### F5 - 2023-02-14 · updated · rule 200004474 > Updated: signature 200004474 "JSP Expression Language Expression Injection (3) (URI)" (Server Side Code Injection, risk High), systems: Java Servlets/JSP, Apache Struts. References: CVE-2018-11776. Source: https://docs.cloud.f5.com/docs-v2/platform/changelogs/security-details-changelog ### OWASP CRS - 2019-09-24 · new · rule 933160 > Add CVE-2018-11776 to comments of 933160 and 933161 (Franziska Bühler) Source: https://github.com/coreruleset/coreruleset/blob/main/CHANGES.md ## Our test (measured) - OWASP Core Rule Set 4.25.0, paranoia level 1, anomaly threshold 5, default CRS settings: blocked (3 of 3 requests blocked), template CVE-2018-11776, 2026-11-02 - OWASP Core Rule Set 4.25.0, paranoia level 2, anomaly threshold 5, default CRS settings: blocked (3 of 3 requests blocked), template CVE-2018-11776, 2026-11-02 "No public claim" means no vendor statement names this CVE; "Before feed history" means the CVE is older than the vendor feed. In both cases generic rules may still block it. HTML: https://cve.vigilbase.com/cve/CVE-2018-11776 · JSON: https://cve.vigilbase.com/api/v1/cves/CVE-2018-11776