Visit NES for Apache Struts Home Page

Apache Struts Forward Compatibility 1.3 Release Notes

7 versions

Comprehensive release notes and changelog for Apache Struts Forward Compatibility 1.3, detailing HeroDevs-provided security patches across all supported versions.

Oct 30, 2026
Latest: 1.4.6
3 Patched Vulnerabilities
VEX Statements

October 2026

1.4.6

Released Oct 30, 2026
Full Version:
1.3.10-struts-1.4.6

Notes

  • Upload limits now apply as configured. maxSize limits the whole request, and maxFileSize each file; earlier 1.4 releases ignored maxSize and applied maxFileSize to both. If you set maxFileSize but not maxSize, your request limit is now the 250M default; to keep the old one, set maxSize to your maxFileSize value. maxHeaderSize now applies; earlier 1.4 releases always used 512 bytes. See Earlier releases for these and a memFileSize change.
  • Multipart text fields that don't name a charset, which is what browsers send, are now decoded with the request's character encoding, as in Apache Struts 1.3.10. Earlier 1.4 releases always decoded them as ISO-8859-1, so non-ASCII text arrived garbled on containers that set a request encoding, such as Tomcat 10 and later. If your application re-decodes these values as UTF-8 to work around that, remove the workaround: it now corrupts the text. Without a request encoding, text is still decoded as ISO-8859-1.
  • Serializable classes now declare Apache Struts 1.3.10's serialVersionUID values, so objects that Apache Struts 1.3.10 serialized, for example in a persisted or replicated HTTP session, deserialize on NES instead of failing with InvalidClassException.

Dependency Upgrades

  • org.apache.commons:commons-fileupload2-core 2.0.0-M4 -> 2.0.0-M5
  • org.apache.commons:commons-fileupload2-jakarta-servlet5 2.0.0-M4 -> 2.0.0-M5
  • commons-io:commons-io 2.19.0 -> 2.21.0 (through commons-fileupload2-core)

September 2026

1.4.5

Released Sep 17, 2026
Full Version:
1.3.10-struts-1.4.5

Notes

  • struts-core now tolerates a request that specifies no character encoding when handling multipart/form-data uploads. Containers that do not default the request encoding — including Eclipse Jetty, WildFly (Undertow) and GlassFish — previously failed every multipart upload with IllegalArgumentException: Null charset name. Apache Tomcat was unaffected, as it defaults the request encoding to UTF-8.

December 2025

1.4.4

Released Dec 10, 2025
Full Version:
1.3.10-struts-1.4.4

Notes

  • struts-tiles removed its dependency on commons-io, as it is no longer required.
  • struts-core now uses a more efficient implementation for its security-related regular expression.

September 2025

1.4.3

Released Sep 12, 2025
Full Version:
1.3.10-struts-1.4.3

Notes

  • Added sources jar to the published artifacts.

August 2025

1.4.2

Released Aug 25, 2025
Full Version:
1.3.10-struts-1.4.2

Notes

  • updates to struts-faces to fully support Jakarta EE 9
Full Version:
1.3.10-struts-1.4.1

Security Fixes

  • CVE-2025-54656: Improper Output Neutralization for Logs Vulnerability
  • CVE-2025-48976: FileUpload DoS via part headers
  • CVE-2025-48734: Improper Access Control vulnerability
    • Dependency upgrade of beanutils to 1.11.0 or override to nes-v1.7.4 addresses this vulnerability.

Dependency Upgrades

  • commons-beanutils:commons-beanutils 1.9.4 -> 1.11.0
  • org.apache.commons:commons-fileupload2-core 2.0.0-M1 -> 2.0.0-M4
  • org.apache.commons:commons-fileupload2-jakarta 2.0.0-M1 -> commons-fileupload2-jakarta-servlet5 2.0.0-M4

June 2025

1.4.0

Released Jun 25, 2025
Full Version:
1.3.10-struts-1.4.0

Notes

  • This release originates from NES for Apache Struts 1.3.x and is designed to be compatible with Jakarta EE environments.

Dependency Upgrades

  • commons-fileupload 2.0.0-M1
  • Jakarta EE 9 compatibility:
    • jakarta.faces-api 3.0.0
    • jakarta.servlet-api 5.0.0
    • jakarta.servlet.jsp-api 3.0.0
    • jakarta.el-api 4.0.0 Full Version: 1.3.10-struts-1.4.0

Stay in the loop

~/herodevs-spring-framework-support

Open Source Support

When official support ends, we're just getting started.