Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Security] Bump jetty-server from 9.4.19.v20190610 to 9.4.38.v20210224 #567

Conversation

dependabot-preview[bot]
Copy link

Bumps jetty-server from 9.4.19.v20190610 to 9.4.38.v20210224. This update includes security fixes.

Vulnerabilities fixed

Sourced from The GitHub Security Advisory Database.

Buffer not correctly recycled in Gzip Request inflation

Impact

If GZIP request body inflation is enabled and requests from different clients are multiplexed onto a single connection and if an attacker can send a request with a body that is received entirely by not consumed by the application, then a subsequent request on the same connection will see that body prepended to it's body.

The attacker will not see any data, but may inject data into the body of the subsequent request

CVE score is 4.8 AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:L

Workarounds

The problem can be worked around by either:

  • Disabling compressed request body inflation by GzipHandler.
  • By always fully consuming the request content before sending a response.
  • By adding a Connection: close to any response where the servlet does not fully consume request content.

Affected versions: >= 9.4.0, <= 9.4.34

Sourced from The GitHub Security Advisory Database.

DOS vulnerability for Quoted Quality CSV headers

Impact

When Jetty handles a request containing request headers with a large number of “quality” (i.e. q) parameters (such as what are seen on the Accept, Accept-Encoding, and Accept-Language request headers), the server may enter a denial of service (DoS) state due to high CPU usage while sorting the list of values based on their quality values. A single request can easily consume minutes of CPU time before it is even dispatched to the application.

The only features within Jetty that can trigger this behavior are:

  • Default Error Handling - the Accept request header with the QuotedQualityCSV is used to determine what kind of content to send back to the client (html, text, json, xml, etc)
  • StatisticsServlet - uses the Accept request header with the QuotedQualityCSV to determine what kind of content to send back to the client (xml, json, text, html, etc)
  • HttpServletRequest.getLocale() - uses the Accept-Language request header with the QuotedQualityCSV to determine which “preferred” language is returned on this call.
  • HttpservletRequest.getLocales() - is similar to the above, but returns an ordered list of locales based on the quality values on the Accept-Language request header.
  • DefaultServlet - uses the Accept-Encoding request header with the QuotedQualityCSV to determine which kind of pre-compressed content should be sent back for static content (content that is not matched against a url-pattern in your web app)

Versions

QuotedQualityCSV was introduced to Jetty 9.3.9.v20160517 and the bug that introduced the vulnerability was in 9.4.6.v20170531.

Currently, known vulnerable versions include:

  • 9.4.6.v20170531 thru to 9.4.36.v20210114
  • 10.0.0
  • 11.0.0

... (truncated)

Affected versions: >= 9.4.6, < 9.4.37

Release notes

Sourced from jetty-server's releases.

9.4.38.v20210224

Changelog

  • #6001 - Ambiguous URI legacy compliance mode
  • #5999 - HttpURI ArrayIndexOutOfBounds
  • #5994 - QueuedThreadPool "free" threads
  • #5977 - Cache-Control header set by a filter is override by the value from DefaultServlet configuration

9.4.37.v20210219

Changelog

  • This release addresses and resolves CVE-2020-27223
  • #5979 - Configurable gzip Etag extension
  • #5977 - Cache-Control header set by a filter is override by the value from DefaultServlet configuration
  • #5976 - Adding requested Rewrite Rule to force request header values
  • #5973 - Proxy client TLS authentication example
  • #5963 - Improve QuotedQualityCSV
  • #5950 - Deadlock due to logging inside classloaders
  • #5937 - Unnecessary blocking in ResourceService
  • #5909 - Cannot disable HTTP OPTIONS Method
  • #5894 - Jetty 9.4.x 5859 classloader leak queuedthreadpool
  • #5851 - org.eclipse.jetty.websocket.servlet.WebSocketServlet cleanup
  • #5787 - Make ManagedSelector report better JMX data
  • #5492 - Add ability to manage start modules by java feature
  • #4275 - Path Normalization/Traversal - Context Matching

9.4.36.v20210114

Special Thanks to the following Eclipse Jetty community members

Changelog

  • #5870 - jetty-maven-plugin fails to run ServletContainerInitializer on Windows due to URI case comparison bug
  • #5855 - HttpClient may not send queued requests
  • #5845 - Use UTF-8 encoding for client basic auth if requested
  • #5830 - Jetty-util contains wrong Import-Package
  • #5825 - Revisit Statistics classes (@​rk1165)
  • #5824 - Build up of ConstraintMappings when stopping and starting WebAppContext
  • #5821 - JMX-ify Scheduler implementations (@​rk1165)
  • #5820 - backport fix for ArithmeticException in Pool
  • #5804 - Jetty 9.4.x spotbug issue map iteration using entrySet(), diamond list creation
  • #5801 - Implement max duration of HTTP ConnectionPools
  • #5794 - ServerConnector leaks closed sockets which can lead to file descriptor exhaustion (@​joewitt)
  • #5785 - Reduce log level for WebSocket connections closed by clients
  • #5783 - Fix ConnectionStatistics.*Rate() methods
  • #5778 - fix ByteBufferPool race condition
  • #5755 - Cannot configure maxDynamicTableSize on HTTP2Client

... (truncated)

Commits
  • 288f3cc Updating to version 9.4.38.v20210224
  • 0603b13 Merge pull request #6005 from eclipse/jetty-9.4.x-6001-default-accept-ambiguo...
  • e68293e Addressing copy/paste mistakes
  • f9b5974 Fix #4275 separate compliance modes for ambiguous URI segments and separators
  • 49e73df Fix #4275 #6001 separate compliance modes for ambiguous URI segments and se… ...
  • c9cd1e4 Merge pull request #5995 from eclipse/jetty-9.4.x-5994-qtp_free_threads
  • 8bd4a9f Fix #5999 ArrayIndexOutOfBounds for unicode in HttpURI segment (#6000)
  • 530c14e Issue #5994 - QueuedThreadPool "free" threads
  • 16241d7 Efficiency improvements for #5977
  • fdb54fa Efficiency improvements for #5977
  • Additional commits viewable in compare view

Dependabot compatibility score

You can trigger a rebase of this PR by commenting @dependabot rebase.


Note: This repo was added to Dependabot recently, so you'll receive a maximum of 1 PRs for your first few update runs. Once an update run creates fewer than 1 PRs we'll remove that limit.

You can always request more updates by clicking Bump now in your Dependabot dashboard.

Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
  • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
  • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
  • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
  • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

Additionally, you can set the following in your Dependabot dashboard:

  • Update frequency (including time of day and day of week)
  • Pull request limits (per update run and/or open at any time)
  • Out-of-range updates (receive only lockfile updates, if desired)
  • Security updates (receive only security updates, if desired)

Bumps [jetty-server](https://github.com/eclipse/jetty.project) from 9.4.19.v20190610 to 9.4.38.v20210224. **This update includes security fixes.**
- [Release notes](https://github.com/eclipse/jetty.project/releases)
- [Commits](jetty/jetty.project@jetty-9.4.19.v20190610...jetty-9.4.38.v20210224)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
@dependabot-preview dependabot-preview bot added dependencies Pull requests that update a dependency file security Pull requests that address a security vulnerability labels Apr 22, 2021
@dependabot-preview
Copy link
Author

Superseded by #574.

@dependabot-preview dependabot-preview bot deleted the dependabot/maven/org.eclipse.jetty-jetty-server-9.4.38.v20210224 branch June 23, 2021 20:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file security Pull requests that address a security vulnerability
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

0 participants