← Vulnerability feed

Vulnerability record · CVE-2017-12611 · published 20 September 2017

CVE-2017-12611: Apache Struts Freemarker tag expression flaw enables remote code execution

Apache · Struts

Apache Struts 2.0.0 through 2.3.33 and 2.5 through 2.5.10.1 mishandle expressions used in Freemarker tags in place of string literals, allowing unintended expression evaluation. Because that evaluation can reach code execution, the flaw is a critical remote code execution issue in a widely deployed web framework.

9.8 CVSS 3.0 Critical EPSS 87% · top 0.3% CWE-20 · Improper input validation
9.8CVSS 3.0 base score, v2 7.5
87%EPSS exploitation probability, 30 days
NoNot in CISA KEV
1Affected product versions listed by NVD
10References, 2 tagged exploit
17 Jun 2026Last modified by NVD

Description

In Apache Struts 2.0.0 through 2.3.33 and 2.5 through 2.5.10.1, using an unintentional expression in a Freemarker tag instead of string literals can lead to a RCE attack.

CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Automated analysis

Generated by VULONE's analysis model from the NVD record, CISA KEV and EPSS data on 18 September 2026. Confidence: high.

critical priorityCVSS 9.8 with network reachability, no authentication or interaction, and full confidentiality, integrity and availability impact, combined with a very high EPSS score and an exploit-tagged vendor advisory.

What it is

Apache Struts 2.0.0 through 2.3.33 and 2.5 through 2.5.10.1 mishandle expressions used in Freemarker tags in place of string literals, allowing unintended expression evaluation. Because that evaluation can reach code execution, the flaw is a critical remote code execution issue in a widely deployed web framework.

Impact

An attacker can execute arbitrary code in the context of the Struts application, leading to full compromise of the affected server and any data or credentials it can reach.

Attack surface

Reachable over the network through HTTP requests to a Struts application that uses Freemarker tags with non-literal expressions; the CVSS vector indicates no authentication and no user interaction are required.

Exploitation

The vendor advisory is tagged Exploit, and EPSS is very high at 0.87123 (99.74th percentile), though the CVE is not listed in CISA KEV and no ransomware use is documented.

What to do

  • Upgrade Apache Struts to a version above 2.5.10.1 (or above 2.3.33 on the 2.3 branch) per the vendor S2-053 advisory
  • If immediate upgrade is not possible, apply the mitigations referenced by third-party advisories such as Aruba and Oracle
  • Audit Struts applications for Freemarker tags that use expressions instead of string literals and convert them to literals
  • Restrict network exposure of Struts applications and place them behind filtering or a WAF where feasible
  • Verify patched status for bundled Struts in third-party products such as NetApp and Oracle offerings

Detection

  • Inspect web and application logs for requests containing Freemarker expression syntax or unusual template payloads targeting Struts endpoints
  • Monitor for unexpected child processes or command execution spawned by the Java application server
  • Alert on outbound network connections from the Struts host that are not part of normal application behavior
  • Scan deployed artifacts and dependency manifests for Struts versions in the affected ranges

This assessment is produced automatically and is not human-reviewed. Verify against the vendor advisory before acting on it.

Affected products

1 vulnerable configurations from NVD's CPE data, grouped by vendor and product.

References

Track CVE-2017-12611 inside VULONE

Watch it alongside the ransomware crews, C2 infrastructure and forum chatter that reference it, query it through the API and pull it into your SIEM over TAXII.

Start free Open in platform

Related vulnerabilities

Same products first, then exploited flaws of the same weakness class.

9.8CVE-2020-17530Apache Struts forced OGNL evaluation enables remote code executionApache Struts 2.0.0 through 2.5.25 performs forced OGNL evaluation on raw user input placed in tag attributes, allowing expression language injection…KEVEPSS 96%analysed9.8CVE-2017-9791Apache Struts 1 plugin input validation flaw enables remote code executionThe Struts 1 plugin in Apache Struts 2.1.x and 2.3.x may allow remote code execution when a malicious field value is passed in a raw message to the A…KEVEPSS 99%analysed9.8CVE-2017-5638Apache Struts 2 Jakarta Multipart parser remote code executionThe Jakarta Multipart parser in Apache Struts 2 mishandles exceptions and error messages during file-upload attempts, letting a crafted Content-Type,…KEVEPSS 100%analysed9.8CVE-2013-2251Apache Struts 2 OGNL injection enables remote code executionApache Struts 2.0.0 through 2.3.15 fails to properly validate request parameters, allowing crafted action:, redirect:, or redirectAction: prefixes to…KEVEPSS 100%analysed9.8CVE-2012-0391Apache Struts ExceptionDelegator OGNL injection enables remote code executionApache Struts before 2.2.3.1 evaluates parameter values as OGNL expressions in the ExceptionDelegator component during exception handling for mismatc…KEVEPSS 76%analysed8.1CVE-2018-11776Apache Struts namespace handling flaw enables remote code executionApache Struts 2.3 through 2.3.34 and 2.5 through 2.5.16 can execute remote code when alwaysSelectFullNamespace is enabled and results or url tags are…KEVEPSS 100%analysed8.1CVE-2017-9805Apache Struts REST Plugin XStream deserialization RCEThe REST Plugin in Apache Struts 2.1.1 through 2.3.x before 2.3.34 and 2.5.x before 2.5.13 uses an XStreamHandler with an XStream instance for deseri…KEVEPSS 99%analysed7.5CVE-2006-1547Apache Struts 1 ActionForm multipart parameter denial of serviceApache Struts before 1.2.9 with BeanUtils 1.7 exposes the public getMultipartRequestHandler method through ActionForm parameter binding. A remote att…KEVEPSS 55%analysed

Source: NIST National Vulnerability Database (record CVE-2017-12611), CISA KEV, FIRST EPSS (scores of 2026-09-24). This page is refreshed as NVD updates the record.