Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 719460 (CVE-2019-9511, CVE-2019-9512, CVE-2019-9513, CVE-2019-9514, CVE-2019-9515, CVE-2019-9516, CVE-2019-9517) - [Tracker] Multiple HTTP/2 vulnerabilities (CVE-2019-{9511,9512,9513,9514,9515,9516,9517,9518})
Summary: [Tracker] Multiple HTTP/2 vulnerabilities (CVE-2019-{9511,9512,9513,9514,9515...
Status: RESOLVED FIXED
Alias: CVE-2019-9511, CVE-2019-9512, CVE-2019-9513, CVE-2019-9514, CVE-2019-9515, CVE-2019-9516, CVE-2019-9517
Product: Gentoo Security
Classification: Unclassified
Component: Vulnerabilities (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Security
URL:
Whiteboard: B3 [cve]
Keywords:
Depends on: 692102 CVE-2019-14809 CVE-2019-10081, CVE-2019-10082, CVE-2019-10092, CVE-2019-10097, CVE-2019-10098 718952
Blocks:
  Show dependency tree
 
Reported: 2020-04-26 00:12 UTC by Sam James
Modified: 2020-05-04 01:42 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sam James archtester gentoo-dev Security 2020-04-26 00:12:24 UTC
These issues have mostly been resolved but filing this for completeness.
Comment 1 GLSAMaker/CVETool Bot gentoo-dev 2020-04-26 00:14:05 UTC
CVE-2019-9517 (https://nvd.nist.gov/vuln/detail/CVE-2019-9517):
  Some HTTP/2 implementations are vulnerable to unconstrained interal data
  buffering, potentially leading to a denial of service. The attacker opens
  the HTTP/2 window so the peer can send without constraint; however, they
  leave the TCP window closed so the peer cannot actually write (many of) the
  bytes on the wire. The attacker then sends a stream of requests for a large
  response object. Depending on how the servers queue the responses, this can
  consume excess memory, CPU, or both.

CVE-2019-9516 (https://nvd.nist.gov/vuln/detail/CVE-2019-9516):
  Some HTTP/2 implementations are vulnerable to a header leak, potentially
  leading to a denial of service. The attacker sends a stream of headers with
  a 0-length header name and 0-length header value, optionally Huffman encoded
  into 1-byte or greater headers. Some implementations allocate memory for
  these headers and keep the allocation alive until the session dies. This can
  consume excess memory.

CVE-2019-9515 (https://nvd.nist.gov/vuln/detail/CVE-2019-9515):
  Some HTTP/2 implementations are vulnerable to a settings flood, potentially
  leading to a denial of service. The attacker sends a stream of SETTINGS
  frames to the peer. Since the RFC requires that the peer reply with one
  acknowledgement per SETTINGS frame, an empty SETTINGS frame is almost
  equivalent in behavior to a ping. Depending on how efficiently this data is
  queued, this can consume excess CPU, memory, or both.

CVE-2019-9514 (https://nvd.nist.gov/vuln/detail/CVE-2019-9514):
  Some HTTP/2 implementations are vulnerable to a reset flood, potentially
  leading to a denial of service. The attacker opens a number of streams and
  sends an invalid request over each stream that should solicit a stream of
  RST_STREAM frames from the peer. Depending on how the peer queues the
  RST_STREAM frames, this can consume excess memory, CPU, or both.

CVE-2019-9513 (https://nvd.nist.gov/vuln/detail/CVE-2019-9513):
  Some HTTP/2 implementations are vulnerable to resource loops, potentially
  leading to a denial of service. The attacker creates multiple request
  streams and continually shuffles the priority of the streams in a way that
  causes substantial churn to the priority tree. This can consume excess CPU.

CVE-2019-9512 (https://nvd.nist.gov/vuln/detail/CVE-2019-9512):
  Some HTTP/2 implementations are vulnerable to ping floods, potentially
  leading to a denial of service. The attacker sends continual pings to an
  HTTP/2 peer, causing the peer to build an internal queue of responses.
  Depending on how efficiently this data is queued, this can consume excess
  CPU, memory, or both.

CVE-2019-9511 (https://nvd.nist.gov/vuln/detail/CVE-2019-9511):
  Some HTTP/2 implementations are vulnerable to window size manipulation and
  stream prioritization manipulation, potentially leading to a denial of
  service. The attacker requests a large amount of data from a specified
  resource over multiple streams. They manipulate window size and stream
  priority to force the server to queue the data in 1-byte chunks. Depending
  on how efficiently this data is queued, this can consume excess CPU, memory,
  or both.
Comment 2 GLSAMaker/CVETool Bot gentoo-dev 2020-04-26 00:14:05 UTC
CVE-2019-9517 (https://nvd.nist.gov/vuln/detail/CVE-2019-9517):
  Some HTTP/2 implementations are vulnerable to unconstrained interal data
  buffering, potentially leading to a denial of service. The attacker opens
  the HTTP/2 window so the peer can send without constraint; however, they
  leave the TCP window closed so the peer cannot actually write (many of) the
  bytes on the wire. The attacker then sends a stream of requests for a large
  response object. Depending on how the servers queue the responses, this can
  consume excess memory, CPU, or both.

CVE-2019-9516 (https://nvd.nist.gov/vuln/detail/CVE-2019-9516):
  Some HTTP/2 implementations are vulnerable to a header leak, potentially
  leading to a denial of service. The attacker sends a stream of headers with
  a 0-length header name and 0-length header value, optionally Huffman encoded
  into 1-byte or greater headers. Some implementations allocate memory for
  these headers and keep the allocation alive until the session dies. This can
  consume excess memory.

CVE-2019-9515 (https://nvd.nist.gov/vuln/detail/CVE-2019-9515):
  Some HTTP/2 implementations are vulnerable to a settings flood, potentially
  leading to a denial of service. The attacker sends a stream of SETTINGS
  frames to the peer. Since the RFC requires that the peer reply with one
  acknowledgement per SETTINGS frame, an empty SETTINGS frame is almost
  equivalent in behavior to a ping. Depending on how efficiently this data is
  queued, this can consume excess CPU, memory, or both.

CVE-2019-9514 (https://nvd.nist.gov/vuln/detail/CVE-2019-9514):
  Some HTTP/2 implementations are vulnerable to a reset flood, potentially
  leading to a denial of service. The attacker opens a number of streams and
  sends an invalid request over each stream that should solicit a stream of
  RST_STREAM frames from the peer. Depending on how the peer queues the
  RST_STREAM frames, this can consume excess memory, CPU, or both.

CVE-2019-9513 (https://nvd.nist.gov/vuln/detail/CVE-2019-9513):
  Some HTTP/2 implementations are vulnerable to resource loops, potentially
  leading to a denial of service. The attacker creates multiple request
  streams and continually shuffles the priority of the streams in a way that
  causes substantial churn to the priority tree. This can consume excess CPU.

CVE-2019-9512 (https://nvd.nist.gov/vuln/detail/CVE-2019-9512):
  Some HTTP/2 implementations are vulnerable to ping floods, potentially
  leading to a denial of service. The attacker sends continual pings to an
  HTTP/2 peer, causing the peer to build an internal queue of responses.
  Depending on how efficiently this data is queued, this can consume excess
  CPU, memory, or both.

CVE-2019-9511 (https://nvd.nist.gov/vuln/detail/CVE-2019-9511):
  Some HTTP/2 implementations are vulnerable to window size manipulation and
  stream prioritization manipulation, potentially leading to a denial of
  service. The attacker requests a large amount of data from a specified
  resource over multiple streams. They manipulate window size and stream
  priority to force the server to queue the data in 1-byte chunks. Depending
  on how efficiently this data is queued, this can consume excess CPU, memory,
  or both.
Comment 3 GLSAMaker/CVETool Bot gentoo-dev 2020-04-26 00:14:34 UTC
CVE-2019-9518 (https://nvd.nist.gov/vuln/detail/CVE-2019-9518):
  Some HTTP/2 implementations are vulnerable to a flood of empty frames,
  potentially leading to a denial of service. The attacker sends a stream of
  frames with an empty payload and without the end-of-stream flag. These
  frames can be DATA, HEADERS, CONTINUATION and/or PUSH_PROMISE. The peer
  spends time processing each frame disproportionate to attack bandwidth. This
  can consume excess CPU.