Skip to content

Upgrading org.eclipse.jetty:jetty-webapp 10 to 11

Breaking10.0.26 → 11.0.25Breaking14Security28Platform1Deprecated9New42Changed289Fixed121Other177

BreakingUpgrade verdict

14 breaking changes and a platform requirement change and 28 security fixes.

  • ELContextCleaner no longer needed.
  • Modifying of HTTP headers in HttpChannel.Listener#onResponseBegin is no longer possible with Jetty.
  • The old distribution package is gone; set up a jetty.base directory and use jetty-home instead.
  • The single combined jetty-all jar no longer exists; depend on the individual modules instead.
Top 5 of 52 that need code or config changes
Breaking14
ELContextCleaner no longer needed.
Modifying of HTTP headers in HttpChannel.Listener#onResponseBegin is no longer possible with Jetty.
jetty-distribution is removed; use jetty-home with a proper ${jetty.base}.
jetty-distributionjetty-home${jetty.base}
The jetty-all uber artifact is removed.
jetty-all
Removes jetty-all.
jetty-all
Removes jetty-distribution in favor of jetty-home.
jetty-distributionjetty-home
Removes unused methods on SessionHandler.
SessionHandler
Incompatible with jacoco due to shutdown race condition.
test-keystore.p12 is no longer packaged in jetty-home.
test-keystore.p12
Jetty 11.x uses the jakarta.servlet namespace; use Jetty 10.x for javax.servlet.
jakarta.servletjavax.servlet
Classic Jetty logging facade is replaced with slf4j-api usage.
slf4j-api
Managing Configuration within a WebAppContext has a new API that is self ordering.
ConfigurationWebAppContext
Complete WebSocket refactoring requires code updates for Jetty API or embedded Jetty users.
Uses the jakarta.* namespace for new Jakarta EE 9 "Big Bang" artifacts.
Security28
CVE-2024-22201 - HTTP/2 connection not closed after idle timeout when TCP congested.
CVE-2023-44487 - (in case isn't fixed, use top level link https://nvd.nist.gov/vuln/detail/CVE-2023-44487).
GHSA-58qw-p7qm-5rvh - provides a workaround for direct users of XmlParser.
CVE-2023-40167.
CVE-2023-36478.
CVE-2023-36479.
Jetty accepts "+" prefixed value in Content-Length (CVE-2023-40167).
Allow SAXParserFactory or SAXParser to be configured in Jetty's XmlParser class - Allows for GHSA-58qw-p7qm-5rvh workaround.
SAXParserFactorySAXParserXmlParser
Deprecate CGI Servlet (CVE-2023-36479).
CVE-2023-41900.
Add optional configuration to log user out after OpenID idToken expires (CVE-2023-41900).
Cleanup Multipart handling for CVE-2023-26048.
Cleanup Cookie Cutter handling for CVE-2023-26049.
(CVE-2022-2047) - https://github.com/eclipse/jetty.project/security/advisories/GHSA-cj7v-27pg-wf7q - Invalid URI parsing may produce invalid HttpURI.authority.
(CVE-2022-2048) - https://github.com/eclipse/jetty.project/security/advisories/GHSA-wgmr-mf83-7x4j - Invalid HTTP/2 requests can lead to denial of service.
(CVE-2022-2191) - https://github.com/eclipse/jetty.project/security/advisories/GHSA-8mpp-f3f7-xc28 - SslConnection does not release pooled ByteBuffers in case of errors.
Improve SSLConnection buffers handling (Resolves CVE-2022-2191).
Review HttpRequest URI construction (Resolves CVE-2022-2047).
Review HTTP/2 error handling (Resolves CVE-2022-2048).
Resolves CVE-2021-34429.
Moderate · CVSS 5.3
Resolves CVE-2021-28169 and CVE-2021-34428.
Fixes CVE-2021-28165, where the Jetty server uses high CPU when a client sends data length greater than 17408.
Fixes CVE-2021-28164 by normalizing ambiguous URIs.
Fixes CVE-2021-28163 by excluding the webapps directory from the deployment scan.
Addresses and resolves CVE-2020-27223.
Local Temp Directory Hijacking Vulnerability
High · CVSS 7.0
Fixes an open redirect when sending a custom Host header to a URL with no trailing forward-slash.
Fixes CWE-331 in the DigestAuthentication class.
DigestAuthentication
Platform1
Jetty 11.x requires a minimum of Java 11.
Deprecated9
Better document ContextHandler.setCompactPath(boolean) deprecation.
ContextHandler.setCompactPath(boolean)
Deprecate PushCacheFilter.
Deprecate PushSessionCacheFilter.
Remove usages of classes associated with JEP-411 that deprecate/remove the SecurityManager from the JVM.
Deprecate log4j 1.x support.
Add support to deprecate jetty-home modules.
Deprecate UnixSocket JNR support.
Deprecates support for UTF16 encoding in URIs.
Adds a DeprecationWarning Decorator.