CVE-2019-17638: Infoleak
Eclipse Jetty, as bundled in Jenkins, could allow a remote attacker to obtain sensitive information, caused by an issue with corrupt HTTP response buffer being sent to different clients. By sending a specially-crafted HTTP request, an attacker could exploit this vulnerability to obtain sensitive information, and use this information to launch further attacks against the affected system.
Other sources
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).
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 response2 data. Thread1 then proceeds to write the buffer that now contains response2 data. This results in client1, which issued request1 and expects responses, to see response2 which could contain sensitive data belonging to client2 (HTTP session ids, authentication credentials, etc.).
References: https://bugs.eclipse.org/bugs/showbug.cgi?id=564984 https://github.com/eclipse/jetty.project/issues/4936
— Red Hat
Affected Software
Event History
Parent advisories
This vulnerability appears in the following advisories.
Frequently Asked Questions
What is CVE-2019-17638?
CVE-2019-17638 is a vulnerability in Eclipse Jetty that could allow a remote attacker to obtain sensitive information.
What is the severity of CVE-2019-17638?
The severity of CVE-2019-17638 is critical.
How does CVE-2019-17638 work?
CVE-2019-17638 occurs when Jetty throws an exception due to too large response headers, causing the ByteBuffer containing the HTTP response headers to be released back to the ByteBufferPool twice, potentially leading to sensitive information exposure.
Which versions of Eclipse Jetty are affected by CVE-2019-17638?
Eclipse Jetty versions 9.4.27.v20200227 to 9.4.29.v20200521 are affected by CVE-2019-17638.
How can the CVE-2019-17638 vulnerability be fixed?
To fix the CVE-2019-17638 vulnerability, update Eclipse Jetty to version 9.4.30 or higher.