Skip to content
OpenAdvisories
Critical · 9.4 Public exploit CVE-2019-17638 EUVD-2020-0652GHSA-x3rh-m7vp-35f2

Operation on a Resource after Expiration or Release in Jetty Server

Published Jul 9, 2020 · Updated Aug 5, 2024 · Assigned by eclipse

Description

In Eclipse Jetty, versions 9.4.27.v20200227 to 9.4.29.v20200521, in case of too large response headers, Jetty throws an exception to produce an HTTP 431 error. When this happens, the ByteBuffer containing the HTTP response headers is released back to the ByteBufferPool twice. Because of this double release, two threads can acquire the same ByteBuffer from the pool and while thread1 is about to use the ByteBuffer to write response1 data, thread2 fills the ByteBuffer with other data. Thread1 then proceeds to write the buffer that now contains different data. This results in client1, which issued request1 seeing data from another request or response which could contain sensitive data belonging to client2 (HTTP session ids, authentication credentials, etc.). If the Jetty version cannot be upgraded, the vulnerability can be significantly reduced by configuring a responseHeaderSize significantly larger than the requestHeaderSize (12KB responseHeaderSize and 8KB requestHeaderSize).

Affected products

VendorProductAffectedFixed
The Eclipse Foundation Eclipse Jetty 9.4.27.v20200227 to 9.4.29.v20200521 —

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 jetty9 9.4.31-1 —
Debian 13 jetty9 9.4.31-1 —
Debian 12 jetty9 9.4.31-1 —
ReleasePackageFixed inAdvisory
Red Hat OpenShift 4 jenkins 2.235.5.1600414805-1.el7 RHSA-2020:3841, RHSA-2020:3808
Red Hat OpenShift 4 openshift +1 4.3.37-202009120213.p0.git.0.dffefe4.el8 RHSA-2020:3808
Red Hat OpenShift 3 jenkins 2.235.5.1600415953-1.el7 RHSA-2020:4223

Public exploits

Exploit or proof-of-concept code for this vulnerability is publicly available, which lowers the bar for attackers. Treat it as a reason to patch sooner.

Third-party code, not reviewed by us. Public PoCs are sometimes fake or contain malware. Read the code first and run it only in an isolated lab, against systems you are authorised to test.

GitHub 1 repository

Sources: PoC-in-GitHub, Metasploit Framework, Exploit-DB — updated daily. Only links are listed; no exploit code is hosted here.

Affected packages

EcosystemPackageAffectedFixedRecord
Maven org.eclipse.jetty:jetty-server >= 9.4.27, < 9.4.30.v20200611 9.4.30.v20200611 GHSA-x3rh-m7vp-35f2

Advisories 3

References