An old flaw that is still worth studying
Apache Struts advisory S2-045 described CVE-2017-5638 as possible remote code execution during file upload handling in the Jakarta Multipart parser. The exploit path used a malicious Content-Type header.
Why revisit it in 2026? Because it perfectly illustrates the risk of legacy internet-facing frameworks that stay in production far longer than they should.
What made it dangerous
Apache rated it as critical and recommended upgrading to Struts 2.3.32 or 2.5.10.1. In practice, the issue was severe because it hit a routine business function, file upload, present in many administrative and transactional applications.
The Struts case shows that an old, mature component does not automatically become safer with age. Very often it accumulates code, historical usage patterns, and production environments that are hard to migrate.
What this says about Java
This is not an indictment of the language. It is a warning about enterprise web frameworks that remain online for years. The older the application surface, the more operational debt matters.
In 2026, Struts systems are not the dominant startup stack, but they still exist in critical systems, portals, extranets, and long-lived business products.
Common warning signs
Our view
In any article about dangerous technologies and representative CVEs, Struts deserves a place because it reminds us of something simple: in security, danger often comes less from the language than from the age of the framework and the inertia around patching it.
CVE-2017-5638 is still a textbook case for any team maintaining legacy Java web systems: if you do not know exactly what is still running, you do not yet know your real risk.
Related articles
Three adjacent analyses to keep exploring the same attack surface.
Java and Log4Shell: why CVE-2021-44228 remains the reference flaw
Log4Shell showed how a single Java library could become a systemic risk. Here is why CVE-2021-44228 still remains the reference flaw for the Java ecosystem.
Java and Confluence: why CVE-2023-22515 forced urgent action
CVE-2023-22515 allowed unauthorized administrator account creation on exposed Confluence instances. Here is why this Java flaw forced urgent action.
Java and Spring4Shell: what CVE-2022-22965 really taught Spring teams
Spring4Shell reminded the market that widely deployed Java frameworks can become critical when the wrong technical conditions line up. Here is what CVE-2022-22965 really taught Spring teams.
Sources
Related services
If this topic maps to a real risk in your stack, these are the most relevant CleanIssue audits.