Bug 1791420 (CVE-2019-16785) - CVE-2019-16785 waitress: HTTP request smuggling through LF vs CRLF handling
Summary: CVE-2019-16785 waitress: HTTP request smuggling through LF vs CRLF handling
Keywords:
Status: CLOSED ERRATA
Alias: CVE-2019-16785
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
high
high
Target Milestone: ---
Assignee: Red Hat Product Security
QA Contact:
URL:
Whiteboard:
Depends On: 1791421 1791422 1791423 1791485 1791486 1791487 1793270 1793271
Blocks: 1791424
TreeView+ depends on / blocked
 
Reported: 2020-01-15 19:38 UTC by Guilherme de Almeida Suckevicz
Modified: 2021-02-16 20:45 UTC (History)
17 users (show)

Fixed In Version: waitress 1.4.0
Doc Type: If docs needed, set a value
Doc Text:
An HTTP-request vulnerability was discovered in Waitress which implemented a "MAY" part of the RFC7230 which states: "Although the line terminator for the start-line and header fields is the sequence CRLF, a recipient MAY recognize a single LF as a line terminator and ignore any preceding CR." Unfortunately, if a front-end server does not process header fields with an LF the same way as it processes those with a CRLF, it can lead to the front-end and the back-end server processing the same HTTP message in two different ways. This vulnerability can lead to a potential for HTTP request smuggling and splitting where Waitress may see two requests, while the front-end server only sees a single HTTP message.
Clone Of:
Environment:
Last Closed: 2020-03-05 16:32:01 UTC
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2020:0720 0 None None None 2020-03-05 11:58:18 UTC
Red Hat Product Errata RHSA-2021:0420 0 None None None 2021-02-04 16:14:32 UTC

Description Guilherme de Almeida Suckevicz 2020-01-15 19:38:51 UTC
Waitress through version 1.3.1 implemented a "MAY" part of the RFC7230 which states: "Although the line terminator for the start-line and header fields is the sequence CRLF, a recipient MAY recognize a single LF as a line terminator and ignore any preceding CR." Unfortunately if a front-end server does not parse header fields with an LF the same way as it does those with a CRLF it can lead to the front-end and the back-end server parsing the same HTTP message in two different ways. This can lead to a potential for HTTP request smuggling/splitting whereby Waitress may see two requests while the front-end server only sees a single HTTP message. This issue is fixed in Waitress 1.4.0.

References:
https://github.com/Pylons/waitress/security/advisories/GHSA-pg36-wpm5-g57p
https://docs.pylonsproject.org/projects/waitress/en/latest/#security-fixes

Upstream commit:
https://github.com/Pylons/waitress/commit/8eba394ad75deaf9e5cd15b78a3d16b12e6b0eba

Comment 1 Guilherme de Almeida Suckevicz 2020-01-15 19:39:14 UTC
Created python-waitress tracking bugs for this issue:

Affects: epel-all [bug 1791421]
Affects: fedora-all [bug 1791422]
Affects: openstack-rdo [bug 1791423]

Comment 4 Jason Shepherd 2020-01-16 02:35:42 UTC
While Red Hat Quay declares a dependency on python-waitress, it doesn't appear to be used in the code. Setting the impact to low for Red Hat Quay. It may be fixed in a future version.

Comment 5 Summer Long 2020-01-16 03:43:08 UTC
External References:

https://docs.pylonsproject.org/projects/waitress/en/latest/#id6

Comment 9 errata-xmlrpc 2020-03-05 11:58:09 UTC
This issue has been addressed in the following products:

  Red Hat OpenStack Platform 15.0 (Stein)

Via RHSA-2020:0720 https://access.redhat.com/errata/RHSA-2020:0720

Comment 10 Product Security DevOps Team 2020-03-05 16:32:01 UTC
This bug is now closed. Further updates for individual products will be reflected on the CVE page(s):

https://access.redhat.com/security/cve/cve-2019-16785

Comment 11 Summer Long 2021-01-14 05:48:03 UTC
Statement:

All affected Red Hat products ship but do not use the flawed version of python-waitress. The impact for these products is therefore rated as having a security impact of Low.

In Red Hat OpenStack Platform 13,  because the flawed code is not used and the fix would require a substantial amount of development, no update will be provided at this time for the RHOSP13 python-waitress package.

Comment 12 errata-xmlrpc 2021-02-04 16:14:30 UTC
This issue has been addressed in the following products:

  Red Hat Quay 3

Via RHSA-2021:0420 https://access.redhat.com/errata/RHSA-2021:0420


Note You need to log in before you can comment on or make changes to this bug.