CVE-2019-16786
HTTP Request Smuggling: Invalid Transfer-Encoding in Waitress
Severity Score
Exploit Likelihood
Affected Versions
6Public Exploits
0Exploited in Wild
-Decision
Descriptions
Waitress through version 1.3.1 would parse the Transfer-Encoding header and only look for a single string value, if that value was not chunked it would fall through and use the Content-Length header instead. According to the HTTP standard Transfer-Encoding should be a comma separated list, with the inner-most encoding first, followed by any further transfer codings, ending with chunked. Requests sent with: "Transfer-Encoding: gzip, chunked" would incorrectly get ignored, and the request would use a Content-Length header instead to determine the body size of the HTTP message. This could allow for Waitress to treat a single request as multiple requests in the case of HTTP pipelining. This issue is fixed in Waitress 1.4.0.
Waitress versión hasta 1.3.1 analizaría el encabezado Transfer-Encoding y solo buscaría un único valor de cadena, si ese valor no se dividiera, caería y usaría en su lugar el encabezado Content-Length. De acuerdo con el estándar HTTP, Transfer-Encoding debe ser una lista separada por comas, con la codificación más interna primero, seguida de cualquier otra codificación de transferencia, que termine en fragmentos. Las peticiones enviadas con: "Transfer-Encoding: gzip, chunked" se ignorarían incorrectamente, y la petición utilizaría un encabezado Content-Length para determinar el tamaño del cuerpo del mensaje HTTP. Esto podría permitir que Waitress trate una petición única como peticiones múltiples en el caso de la canalización HTTP. Este problema fue corregido en Waitress versión 1.4.0.
An HTTP-interpretation flaw was found in waitress which did not properly validate incoming HTTP headers. When parsing the Transfer-Encoding header, waitress would look only for a single string value. According to the HTTP standard, Transfer-Encoding should be a comma-separated list, with the inner-most encoding first, followed by any further transfer codings, ending with 'chunked'. Because of this flaw, requests sent with: "Transfer-Encoding: gzip, chunked" would get ignored, and waitress would use the Content-Length header instead to determine the body size of the HTTP message. A remote attacker could exploit this flaw to force waitress to accept potentially bad HTTP requests or treat a single request as multiple requests in the case of HTTP pipelining.
Quay 3.4.0 release. Issues addressed include HTTP request smuggling, buffer overflow, information leakage, integer overflow, out of bounds read, and out of bounds write vulnerabilities.
CVSS Scores
SSVC
- Decision:-
Timeline
- 2019-09-24 CVE Reserved
- 2019-12-20 CVE Published
- 2024-08-05 CVE Updated
- 2025-03-30 EPSS Updated
- ---------- Exploited in Wild
- ---------- KEV Due Date
- ---------- First Exploit
CWE
- CWE-444: Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')
CAPEC
References (10)
URL | Date | SRC |
---|