Every CVE Search/ Get API key

CVE-2020-27223

DOS vulnerability for Quoted Quality CSV headers

5.2 MediumPublic exploitFix available

CVE-2020-27223 is a medium vulnerability (CVSS 5.2) in Eclipse Jetty, published February 26, 2021. Public exploit code exists. EPSS puts the chance of exploitation in the next 30 days at 78.0%, the 99th percentile. Fixed in org.eclipse.jetty:jetty-server 9.4.37.

In Eclipse Jetty 9.4.6.v20170531 to 9.4.36.v20210114 (inclusive), 10.0.0, and 11.0.0 when Jetty handles a request containing multiple Accept headers with a large number of “quality” (i.e. q) parameters, the server may enter a denial of service (DoS) state due to high CPU usage processing those quality values, resulting in minutes of CPU time exhausted processing those quality values.

Attack profile

How easy it is to exploit

Attack vector
Adjacent network
Complexity
Low
Privileges needed
Low
User interaction
Required

What an attacker can affect

Confidentiality
None
Integrity
None
Availability
High

Exploit likelihood

78.0%Up 9.0 points since Apr 14, 2021
90%50%10%1%

What each source reports

CVE List Score used 5.2

In Eclipse Jetty 9.4.6.v20170531 to 9.4.36.v20210114 (inclusive), 10.0.0, and 11.0.0 when Jetty handles a request containing multiple Accept headers with a large number of “quality” (i.e. q) parameters, the server may enter a denial of service (DoS) state due to high CPU usage processing those quality values, resulting in minutes of CPU time exhausted processing those quality values.

Record
CVE-2020-27223
CVSS 3.1
5.2 MediumCVSS:3.1/AV:A/AC:L/PR:L/UI:R/S:U/C:N/I:N/A:H
Weakness
CWE-407
Updated
2026-11-02
EUVDEUVD-2021-0679 5.2

In Eclipse Jetty 9.4.6.v20170531 to 9.4.36.v20210114 (inclusive), 10.0.0, and 11.0.0 when Jetty handles a request containing multiple Accept headers with a large number of “quality” (i.e. q) parameters, the server may enter a denial of service (DoS) state due to high CPU usage processing those quality values, resulting in minutes of CPU time exhausted processing those quality values.

Record
EUVD-2021-0679
CVSS 3.1
5.2 MediumCVSS:3.1/AV:A/AC:L/PR:L/UI:R/S:U/C:N/I:N/A:H
Updated
2026-11-02
GitHub AdvisoriesGHSA-m394-8rww-3jr7 5.3

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

Workarounds

Quality ordered values are used infrequently by jetty so they can be avoided by:

  • Do not use the default error page/handler.
  • Do not deploy the StatisticsServlet exposed to the network
  • Do not call getLocale API
  • Do not enable precompressed static content in the DefaultServlet

Patches

All patches are available for download from the Eclipse Jetty website at https://www.eclipse.org/jetty/download.php

  • 9.4.37.v20210219 and greater
  • 10.0.1 and greater
  • 11.0.1 and greater
Record
GHSA-m394-8rww-3jr7
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Weakness
CWE-400
Updated
2026-11-02
NVD 5.2

In Eclipse Jetty 9.4.6.v20170531 to 9.4.36.v20210114 (inclusive), 10.0.0, and 11.0.0 when Jetty handles a request containing multiple Accept headers with a large number of “quality” (i.e. q) parameters, the server may enter a denial of service (DoS) state due to high CPU usage processing those quality values, resulting in minutes of CPU time exhausted processing those quality values.

Record
CVE-2020-27223
CVSS 3.1
5.2 MediumCVSS:3.1/AV:A/AC:L/PR:L/UI:R/S:U/C:N/I:N/A:H
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
CVSS 2.0
4.3 MediumAV:N/AC:M/Au:N/C:N/I:N/A:P
Weakness
CWE-407, CWE-400
Updated
2026-11-02
OSV 5.3

In Eclipse Jetty 9.4.6.v20170531 to 9.4.36.v20210114 (inclusive), 10.0.0, and 11.0.0 when Jetty handles a request containing multiple Accept headers with a large number of “quality” (i.e. q) parameters, the server may enter a denial of service (DoS) state due to high CPU usage processing those quality values, resulting in minutes of CPU time exhausted processing those quality values.

Record
CVE-2020-27223
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Updated
2026-11-02
OSVDEBIAN-CVE-2020-27223 5.3

In Eclipse Jetty 9.4.6.v20170531 to 9.4.36.v20210114 (inclusive), 10.0.0, and 11.0.0 when Jetty handles a request containing multiple Accept headers with a large number of “quality” (i.e. q) parameters, the server may enter a denial of service (DoS) state due to high CPU usage processing those quality values, resulting in minutes of CPU time exhausted processing those quality values.

Record
DEBIAN-CVE-2020-27223
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Updated
2026-11-02
Show 11 moreShow less
OSVGHSA-m394-8rww-3jr7 5.3

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

Workarounds

Quality ordered values are used infrequently by jetty so they can be avoided by:

  • Do not use the default error page/handler.
  • Do not deploy the StatisticsServlet exposed to the network
  • Do not call getLocale API
  • Do not enable precompressed static content in the DefaultServlet

Patches

All patches are available for download from the Eclipse Jetty website at https://www.eclipse.org/jetty/download.php

  • 9.4.37.v20210219 and greater
  • 10.0.1 and greater
  • 11.0.1 and greater
Record
GHSA-m394-8rww-3jr7
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Weakness
CWE-400
Updated
2026-11-02
OSVOESA-2021-1166 7.5

jetty security update

%global desc \ Jetty is a 100% Java HTTP Server and Servlet Container. This means that you\ do not need to configure and run a separate web server (like Apache) in order\ to use Java, servlets and JSPs to generate dynamic content. Jetty is a fully\ featured web server for static and dynamic content. Unlike separate\ server/container solutions, this means that your web server and web\ application run in the same process, without interconnection overheads\ and complications. Furthermore, as a pure java component, Jetty can be simply\ included in your application for demonstration, distribution or deployment.\ Jetty is available on all Java supported platforms. %{desc} %global extdesc %{desc}\ \ This package contains

Security Fix(es):

In Eclipse Jetty 9.4.6.v20170531 to 9.4.36.v20210114 (inclusive), 10.0.0, and 11.0.0 when Jetty handles a request containing multiple Accept headers with a large number of “quality” (i.e. q) parameters, the server may enter a denial of service (DoS) state due to high CPU usage processing those quality values, resulting in minutes of CPU time exhausted processing those quality values.(CVE-2020-27223)

In Eclipse Jetty 7.2.2 to 9.4.38, 10.0.0.alpha0 to 10.0.1, and 11.0.0.alpha0 to 11.0.1, CPU usage can reach 100% upon receiving a large invalid TLS frame.(CVE-2021-28165)

Record
OESA-2021-1166
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVRHSA-2021:2431 8.1

Red Hat Security Advisory: OpenShift Container Platform 4.5.41 security update

Record
RHSA-2021:2431
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
Updated
2026-11-02
OSVRHSA-2021:2499 7.0

Red Hat Security Advisory: OpenShift Container Platform 4.6.36 security update

Record
RHSA-2021:2499
CVSS 3.1
7.0 HighCVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVRHSA-2021:2517 8.1

Red Hat Security Advisory: OpenShift Container Platform 3.11.462 bug fix and security update

Record
RHSA-2021:2517
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
Updated
2026-11-02
OSVUBUNTU-CVE-2020-27223 5.2

In Eclipse Jetty 9.4.6.v20170531 to 9.4.36.v20210114 (inclusive), 10.0.0, and 11.0.0 when Jetty handles a request containing multiple Accept headers with a large number of “quality” (i.e. q) parameters, the server may enter a denial of service (DoS) state due to high CPU usage processing those quality values, resulting in minutes of CPU time exhausted processing those quality values.

Record
UBUNTU-CVE-2020-27223
CVSS 3.1
5.2 MediumCVSS:3.1/AV:A/AC:L/PR:L/UI:R/S:U/C:N/I:N/A:H
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Updated
2026-11-02
OSVBIT-nifi-2020-27223 No score

In Eclipse Jetty 9.4.6.v20170531 to 9.4.36.v20210114 (inclusive), 10.0.0, and 11.0.0 when Jetty handles a request containing multiple Accept headers with a large number of “quality” (i.e. q) parameters, the server may enter a denial of service (DoS) state due to high CPU usage processing those quality values, resulting in minutes of CPU time exhausted processing those quality values.

Record
BIT-nifi-2020-27223
Updated
2026-11-02
OSVBIT-solr-2020-27223 No score

In Eclipse Jetty 9.4.6.v20170531 to 9.4.36.v20210114 (inclusive), 10.0.0, and 11.0.0 when Jetty handles a request containing multiple Accept headers with a large number of “quality” (i.e. q) parameters, the server may enter a denial of service (DoS) state due to high CPU usage processing those quality values, resulting in minutes of CPU time exhausted processing those quality values.

Record
BIT-solr-2020-27223
Updated
2026-11-02
OSVBIT-spark-2020-27223 No score

In Eclipse Jetty 9.4.6.v20170531 to 9.4.36.v20210114 (inclusive), 10.0.0, and 11.0.0 when Jetty handles a request containing multiple Accept headers with a large number of “quality” (i.e. q) parameters, the server may enter a denial of service (DoS) state due to high CPU usage processing those quality values, resulting in minutes of CPU time exhausted processing those quality values.

Record
BIT-spark-2020-27223
Updated
2026-11-02
OSVopenSUSE-SU-2024:10878-1 No score

jetty-annotations-9.4.43-1.2 on GA media

These are all security issues fixed in the jetty-annotations-9.4.43-1.2 package on the GA media of openSUSE Tumbleweed.

Record
openSUSE-SU-2024:10878-1
Updated
2026-11-02
OSVSUSE-SU-2021:0940-1 No score

Security update for jetty-minimal

This update for jetty-minimal fixes the following issues:

  • jetty-minimal was upgraded to version 9.4.38.v20210224
    • CVE-2020-27223: Fixed an issue with Accept request header which might have led to Denial of Service (bsc#1182898).
Record
SUSE-SU-2021:0940-1
Updated
2026-11-02

Affected products

Show 6 moreShow less

Affected packages

Affected packages
PackageAffectedFixed
org.eclipse.jetty:jetty-server
Maven
9.4.6 up to 9.4.37
9.4.37
org.eclipse.jetty:jetty-server
Maven
10.0.0 to 10.0.0
10.0.1
org.eclipse.jetty:jetty-server
Maven
11.0.0 to 11.0.0
11.0.1
nifi
Bitnami
1.13.0 to 1.13.0 None known
solr
Bitnami
8.8.1 up to 8.8.2
8.8.2
spark
Bitnami
3.1.1 up to 3.1.2
3.1.2
jetty9
Debian:12
before 9.4.38-1
9.4.38-1
jetty9
Debian:13
before 9.4.38-1
9.4.38-1
jetty9
Debian:14
before 9.4.38-1
9.4.38-1
jetty9
Debian:10
before 9.4.16-0+deb10u1, plus listed versions
9.4.15-1
9.4.16-0+deb10u1
Show 14 moreShow less
Affected packages
PackageAffectedFixed
org.eclipse.jetty:jetty-server
Maven
9.4.6 up to 9.4.37, plus listed versions
9.4.10.RC09.4.10.RC19.4.10.v201805039.4.11.v201806059.4.12.RC0
Show 35 moreShow less
9.4.12.RC19.4.12.RC29.4.12.v201808309.4.13.v201811119.4.14.v201811149.4.15.v201902159.4.16.v201904119.4.17.v201904189.4.18.v201904299.4.19.v201906109.4.20.v201908139.4.21.v201909269.4.22.v201910229.4.23.v201911189.4.24.v201911209.4.25.v201912209.4.26.v202001179.4.27.v202002279.4.28.v202004089.4.29.v202005219.4.30.v202006119.4.31.v202007239.4.32.v202009309.4.33.v202010209.4.34.v202011029.4.35.v202011209.4.36.v202101149.4.6.v201705319.4.6.v201806199.4.7.RC09.4.7.v201709149.4.7.v201806199.4.8.v201711219.4.8.v201806199.4.9.v20180320
9.4.37
org.eclipse.jetty:jetty-server
Maven
10.0.0 up to 10.0.1
10.0.1
org.eclipse.jetty:jetty-server
Maven
11.0.0 up to 11.0.1
11.0.1
jetty
openEuler:20.03-LTS-SP1
before 9.4.15-7.oe1
9.4.15-7.oe1
jenkins
Red Hat:openshift:4.5::el7
before 0:2.277.3.1623846768-1.el7
0:2.277.3.1623846768-1.el7
jenkins-2-plugins
Red Hat:openshift:4.5::el7
before 0:4.5.1623326336-1.el7
0:4.5.1623326336-1.el7
jenkins
Red Hat:openshift:4.6::el8
before 0:2.277.3.1623853726-1.el8
0:2.277.3.1623853726-1.el8
jenkins
Red Hat:openshift:3.11::el7
before 0:2.289.1.1624365627-1.el7
0:2.289.1.1624365627-1.el7
jenkins-2-plugins
Red Hat:openshift:3.11::el7
before 0:3.11.1624366838-1.el7
0:3.11.1624366838-1.el7
jetty-minimal
SUSE:Linux Enterprise Module for Development Tools 15 SP2
before 9.4.38-3.6.2
9.4.38-3.6.2
jetty9
Ubuntu:16.04:LTS
All versions, plus listed versions
9.2.14-1
None known
jetty9
Ubuntu:18.04:LTS
All versions, plus listed versions
9.2.22-29.2.22-39.2.23-19.4.15-1~18.04.1ubuntu1
None known
jetty9
Ubuntu:20.04:LTS
All versions, plus listed versions
9.4.18-2build29.4.26-1
None known
jetty9
Ubuntu:22.04:LTS
All versions, plus listed versions
9.4.39-39.4.44-29.4.44-39.4.44-49.4.45-1
None known

Public exploits

Links only. Every CVE stores no exploit code.

Public exploits
SourceLinkDate
PoC in GitHubmotikan2010/CVE-2020-272232021-03-19
PoC in GitHubttestoo/Jetty-CVE-2020-272232021-08-18

History

History
WhenChangedSources
2026-11-02createdCVE List, EUVD, GitHub Advisories, NVD, OSV, PoC in GitHub

References

Show 182 moreShow less
MoveEnter Open