<?xml version="1.0" encoding="UTF-8"?>
<cvrfdoc xmlns="http://www.icasi.org/CVRF/schema/cvrf/1.1" xmlns:cvrf="http://www.icasi.org/CVRF/schema/cvrf/1.1">
  <DocumentTitle xml:lang="en">Security update for python-waitress</DocumentTitle>
  <DocumentType>SUSE Patch</DocumentType>
  <DocumentPublisher Type="Vendor">
    <ContactDetails>security@suse.de</ContactDetails>
    <IssuingAuthority>SUSE Security Team</IssuingAuthority>
  </DocumentPublisher>
  <DocumentTracking>
    <Identification>
      <ID>openSUSE-SU-2020:1922-1</ID>
    </Identification>
    <Status>Final</Status>
    <Version>1</Version>
    <RevisionHistory>
      <Revision>
        <Number>1</Number>
        <Date>2020-11-14T17:27:37Z</Date>
        <Description>current</Description>
      </Revision>
    </RevisionHistory>
    <InitialReleaseDate>2020-11-14T17:27:37Z</InitialReleaseDate>
    <CurrentReleaseDate>2020-11-14T17:27:37Z</CurrentReleaseDate>
    <Generator>
      <Engine>cve-database/bin/generate-cvrf.pl</Engine>
      <Date>2017-02-24T01:00:00Z</Date>
    </Generator>
  </DocumentTracking>
  <DocumentNotes>
    <Note Title="Topic" Type="Summary" Ordinal="1" xml:lang="en">Security update for python-waitress</Note>
    <Note Title="Details" Type="General" Ordinal="2" xml:lang="en">This update for python-waitress to 1.4.3 fixes the following security issues:

- CVE-2019-16785: HTTP request smuggling through LF vs CRLF handling (bsc#1161088).
- CVE-2019-16786: HTTP request smuggling through invalid Transfer-Encoding (bsc#1161089).
- CVE-2019-16789: HTTP request smuggling through invalid whitespace characters (bsc#1160790).
- CVE-2019-16792: HTTP request smuggling by sending the Content-Length header twice (bsc#1161670).

This update was imported from the SUSE:SLE-15:Update update project.</Note>
    <Note Title="Terms of Use" Type="Legal Disclaimer" Ordinal="3" xml:lang="en">The CVRF data is provided by SUSE under the Creative Commons License 4.0 with Attribution (CC-BY-4.0).</Note>
    <Note Title="Patchnames" Type="Details" Ordinal="4" xml:lang="en">openSUSE-2020-1922</Note>
  </DocumentNotes>
  <DocumentDistribution xml:lang="en">Copyright SUSE LLC under the Creative Commons License 4.0 with Attribution (CC-BY-4.0)</DocumentDistribution>
  <DocumentReferences>
    <Reference Type="Self">
      <URL>https://lists.opensuse.org/archives/list/security-announce@lists.opensuse.org/thread/QEMGI3N3BFQA6DBGNM4O7UZIWW6BEPWJ/</URL>
      <Description>E-Mail link for openSUSE-SU-2020:1922-1</Description>
    </Reference>
    <Reference Type="Self">
      <URL>https://www.suse.com/support/security/rating/</URL>
      <Description>SUSE Security Ratings</Description>
    </Reference>
    <Reference Type="Self">
      <URL>https://bugzilla.suse.com/1160790</URL>
      <Description>SUSE Bug 1160790</Description>
    </Reference>
    <Reference Type="Self">
      <URL>https://bugzilla.suse.com/1161088</URL>
      <Description>SUSE Bug 1161088</Description>
    </Reference>
    <Reference Type="Self">
      <URL>https://bugzilla.suse.com/1161089</URL>
      <Description>SUSE Bug 1161089</Description>
    </Reference>
    <Reference Type="Self">
      <URL>https://bugzilla.suse.com/1161670</URL>
      <Description>SUSE Bug 1161670</Description>
    </Reference>
    <Reference Type="Self">
      <URL>https://www.suse.com/security/cve/CVE-2019-16785/</URL>
      <Description>SUSE CVE CVE-2019-16785 page</Description>
    </Reference>
    <Reference Type="Self">
      <URL>https://www.suse.com/security/cve/CVE-2019-16786/</URL>
      <Description>SUSE CVE CVE-2019-16786 page</Description>
    </Reference>
    <Reference Type="Self">
      <URL>https://www.suse.com/security/cve/CVE-2019-16789/</URL>
      <Description>SUSE CVE CVE-2019-16789 page</Description>
    </Reference>
    <Reference Type="Self">
      <URL>https://www.suse.com/security/cve/CVE-2019-16792/</URL>
      <Description>SUSE CVE CVE-2019-16792 page</Description>
    </Reference>
  </DocumentReferences>
  <ProductTree xmlns="http://www.icasi.org/CVRF/schema/prod/1.1">
    <Branch Type="Product Family" Name="openSUSE Leap 15.1">
      <Branch Type="Product Name" Name="openSUSE Leap 15.1">
        <FullProductName ProductID="openSUSE Leap 15.1" CPE="cpe:/o:opensuse:leap:15.1">openSUSE Leap 15.1</FullProductName>
      </Branch>
    </Branch>
    <Branch Type="Product Version" Name="python2-waitress-1.4.3-lp151.3.3.1">
      <FullProductName ProductID="python2-waitress-1.4.3-lp151.3.3.1">python2-waitress-1.4.3-lp151.3.3.1</FullProductName>
    </Branch>
    <Branch Type="Product Version" Name="python3-waitress-1.4.3-lp151.3.3.1">
      <FullProductName ProductID="python3-waitress-1.4.3-lp151.3.3.1">python3-waitress-1.4.3-lp151.3.3.1</FullProductName>
    </Branch>
    <Relationship ProductReference="python2-waitress-1.4.3-lp151.3.3.1" RelationType="Default Component Of" RelatesToProductReference="openSUSE Leap 15.1">
      <FullProductName ProductID="openSUSE Leap 15.1:python2-waitress-1.4.3-lp151.3.3.1">python2-waitress-1.4.3-lp151.3.3.1 as a component of openSUSE Leap 15.1</FullProductName>
    </Relationship>
    <Relationship ProductReference="python3-waitress-1.4.3-lp151.3.3.1" RelationType="Default Component Of" RelatesToProductReference="openSUSE Leap 15.1">
      <FullProductName ProductID="openSUSE Leap 15.1:python3-waitress-1.4.3-lp151.3.3.1">python3-waitress-1.4.3-lp151.3.3.1 as a component of openSUSE Leap 15.1</FullProductName>
    </Relationship>
  </ProductTree>
  <Vulnerability xmlns="http://www.icasi.org/CVRF/schema/vuln/1.1" Ordinal="1">
    <Notes>
      <Note Title="Vulnerability Description" Type="General" Ordinal="1" xml:lang="en">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.</Note>
    </Notes>
    <CVE>CVE-2019-16785</CVE>
    <ProductStatuses>
      <Status Type="Fixed">
        <ProductID>openSUSE Leap 15.1:python2-waitress-1.4.3-lp151.3.3.1</ProductID>
        <ProductID>openSUSE Leap 15.1:python3-waitress-1.4.3-lp151.3.3.1</ProductID>
      </Status>
    </ProductStatuses>
    <Threats>
      <Threat Type="Impact">
        <Description>important</Description>
      </Threat>
    </Threats>
    <CVSSScoreSets>
      <ScoreSet>
        <BaseScore>5</BaseScore>
        <Vector>AV:N/AC:L/Au:N/C:N/I:P/A:N</Vector>
      </ScoreSet>
    </CVSSScoreSets>
    <Remediations>
      <Remediation Type="Vendor Fix">
        <Description xml:lang="en">To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or "zypper patch".
</Description>
        <URL>https://lists.opensuse.org/archives/list/security-announce@lists.opensuse.org/thread/QEMGI3N3BFQA6DBGNM4O7UZIWW6BEPWJ/</URL>
      </Remediation>
    </Remediations>
    <References>
      <Reference>
        <URL>https://www.suse.com/security/cve/CVE-2019-16785.html</URL>
        <Description>CVE-2019-16785</Description>
      </Reference>
      <Reference>
        <URL>https://bugzilla.suse.com/1161088</URL>
        <Description>SUSE Bug 1161088</Description>
      </Reference>
    </References>
  </Vulnerability>
  <Vulnerability xmlns="http://www.icasi.org/CVRF/schema/vuln/1.1" Ordinal="2">
    <Notes>
      <Note Title="Vulnerability Description" Type="General" Ordinal="1" xml:lang="en">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.</Note>
    </Notes>
    <CVE>CVE-2019-16786</CVE>
    <ProductStatuses>
      <Status Type="Fixed">
        <ProductID>openSUSE Leap 15.1:python2-waitress-1.4.3-lp151.3.3.1</ProductID>
        <ProductID>openSUSE Leap 15.1:python3-waitress-1.4.3-lp151.3.3.1</ProductID>
      </Status>
    </ProductStatuses>
    <Threats>
      <Threat Type="Impact">
        <Description>important</Description>
      </Threat>
    </Threats>
    <CVSSScoreSets>
      <ScoreSet>
        <BaseScore>5</BaseScore>
        <Vector>AV:N/AC:L/Au:N/C:N/I:P/A:N</Vector>
      </ScoreSet>
    </CVSSScoreSets>
    <Remediations>
      <Remediation Type="Vendor Fix">
        <Description xml:lang="en">To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or "zypper patch".
</Description>
        <URL>https://lists.opensuse.org/archives/list/security-announce@lists.opensuse.org/thread/QEMGI3N3BFQA6DBGNM4O7UZIWW6BEPWJ/</URL>
      </Remediation>
    </Remediations>
    <References>
      <Reference>
        <URL>https://www.suse.com/security/cve/CVE-2019-16786.html</URL>
        <Description>CVE-2019-16786</Description>
      </Reference>
      <Reference>
        <URL>https://bugzilla.suse.com/1161089</URL>
        <Description>SUSE Bug 1161089</Description>
      </Reference>
    </References>
  </Vulnerability>
  <Vulnerability xmlns="http://www.icasi.org/CVRF/schema/vuln/1.1" Ordinal="3">
    <Notes>
      <Note Title="Vulnerability Description" Type="General" Ordinal="1" xml:lang="en">In Waitress through version 1.4.0, if a proxy server is used in front of waitress, an invalid request may be sent by an attacker that bypasses the front-end and is parsed differently by waitress leading to a potential for HTTP request smuggling. Specially crafted requests containing special whitespace characters in the Transfer-Encoding header would get parsed by Waitress as being a chunked request, but a front-end server would use the Content-Length instead as the Transfer-Encoding header is considered invalid due to containing invalid characters. If a front-end server does HTTP pipelining to a backend Waitress server this could lead to HTTP request splitting which may lead to potential cache poisoning or unexpected information disclosure. This issue is fixed in Waitress 1.4.1 through more strict HTTP field validation.</Note>
    </Notes>
    <CVE>CVE-2019-16789</CVE>
    <ProductStatuses>
      <Status Type="Fixed">
        <ProductID>openSUSE Leap 15.1:python2-waitress-1.4.3-lp151.3.3.1</ProductID>
        <ProductID>openSUSE Leap 15.1:python3-waitress-1.4.3-lp151.3.3.1</ProductID>
      </Status>
    </ProductStatuses>
    <Threats>
      <Threat Type="Impact">
        <Description>important</Description>
      </Threat>
    </Threats>
    <CVSSScoreSets>
      <ScoreSet>
        <BaseScore>6.4</BaseScore>
        <Vector>AV:N/AC:L/Au:N/C:P/I:P/A:N</Vector>
      </ScoreSet>
    </CVSSScoreSets>
    <Remediations>
      <Remediation Type="Vendor Fix">
        <Description xml:lang="en">To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or "zypper patch".
</Description>
        <URL>https://lists.opensuse.org/archives/list/security-announce@lists.opensuse.org/thread/QEMGI3N3BFQA6DBGNM4O7UZIWW6BEPWJ/</URL>
      </Remediation>
    </Remediations>
    <References>
      <Reference>
        <URL>https://www.suse.com/security/cve/CVE-2019-16789.html</URL>
        <Description>CVE-2019-16789</Description>
      </Reference>
      <Reference>
        <URL>https://bugzilla.suse.com/1160790</URL>
        <Description>SUSE Bug 1160790</Description>
      </Reference>
    </References>
  </Vulnerability>
  <Vulnerability xmlns="http://www.icasi.org/CVRF/schema/vuln/1.1" Ordinal="4">
    <Notes>
      <Note Title="Vulnerability Description" Type="General" Ordinal="1" xml:lang="en">Waitress through version 1.3.1 allows request smuggling by sending the Content-Length header twice. Waitress would header fold a double Content-Length header and due to being unable to cast the now comma separated value to an integer would set the Content-Length to 0 internally. If two Content-Length headers are sent in a single request, Waitress would treat the request as having no body, thereby treating the body of the request as a new request in HTTP pipelining. This issue is fixed in Waitress 1.4.0.</Note>
    </Notes>
    <CVE>CVE-2019-16792</CVE>
    <ProductStatuses>
      <Status Type="Fixed">
        <ProductID>openSUSE Leap 15.1:python2-waitress-1.4.3-lp151.3.3.1</ProductID>
        <ProductID>openSUSE Leap 15.1:python3-waitress-1.4.3-lp151.3.3.1</ProductID>
      </Status>
    </ProductStatuses>
    <Threats>
      <Threat Type="Impact">
        <Description>moderate</Description>
      </Threat>
    </Threats>
    <CVSSScoreSets>
      <ScoreSet>
        <BaseScore>5</BaseScore>
        <Vector>AV:N/AC:L/Au:N/C:N/I:P/A:N</Vector>
      </ScoreSet>
    </CVSSScoreSets>
    <Remediations>
      <Remediation Type="Vendor Fix">
        <Description xml:lang="en">To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or "zypper patch".
</Description>
        <URL>https://lists.opensuse.org/archives/list/security-announce@lists.opensuse.org/thread/QEMGI3N3BFQA6DBGNM4O7UZIWW6BEPWJ/</URL>
      </Remediation>
    </Remediations>
    <References>
      <Reference>
        <URL>https://www.suse.com/security/cve/CVE-2019-16792.html</URL>
        <Description>CVE-2019-16792</Description>
      </Reference>
      <Reference>
        <URL>https://bugzilla.suse.com/1161670</URL>
        <Description>SUSE Bug 1161670</Description>
      </Reference>
    </References>
  </Vulnerability>
</cvrfdoc>
