Skip to content

Commit 68dddad

Browse files
committed
blog: aug 2019 security post-release announcement
1 parent 5312c60 commit 68dddad

File tree

1 file changed

+62
-19
lines changed

1 file changed

+62
-19
lines changed

locale/en/blog/vulnerability/aug-2019-security-releases.md

Lines changed: 62 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,80 @@
11
---
2-
date: 2019-08-13T21:30:00.000Z
2+
date: 2019-08-15T22:43:22.000Z
33
category: vulnerability
44
title: August 2019 Security Releases
55
slug: august-2019-security-releases
66
layout: blog-post.hbs
77
author: Sam Roberts
88
---
99

10-
# Summary
11-
12-
The Node.js project will release new versions of all supported release lines
13-
on, or shortly after, Thursday, August 15th, 2019 UTC. These releases will
14-
incorporate security fixes to HTTP/2 Denial of Service vulnerabilities in
15-
Node.js, the highest severity of which is HIGH.
16-
17-
The Denial of Service vulnerabilities to be fixed are common to a broad range
18-
of HTTP/2 implementations. Details about them were publicly disclosed on August
19-
13th, 2019. See
10+
Node.js, as well as many other implementations of HTTP/2, have been found
11+
vulnerable to Denial of Service attacks. See
2012
https://github.com/Netflix/security-bulletins/blob/master/advisories/third-party/2019-002.md
2113
for more information.
2214

23-
## Impact
15+
Updates are now available for all active Node.js release lines, except Linux
16+
ARMv6 builds for Node.js 8.x which are still building.
17+
18+
We recommend that all Node.js users upgrade to a version listed below as soon
19+
as possible.
20+
21+
## Downloads & release details
22+
23+
Downloads are available for the following versions. Details of code changes can
24+
also be found on each release page.
25+
26+
* Node.js 8.16.1: https://nodejs.org/dist/latest-v8.x/
27+
* Node.js 10.16.3: https://nodejs.org/dist/latest-v10.x/
28+
* Node.js 12.8.1: https://nodejs.org/dist/latest-v12.x
2429

25-
Releases for all actively supported release lines (Node.js 8, 10, and 12) will
26-
be made available to fix the disclosed HTTP/2 vulnerabilities.
30+
## Vulnerabilities Fixed
2731

28-
## Release timing
32+
***Impact***: All versions of Node.js 8 (LTS "Carbon"), Node.js 10 (LTS "Dubnium"), and Node.js 12 (Current) are vulnerable to the following:
2933

30-
Releases will be available at, or shortly after, Thursday, August 15th, 2019
31-
UTC, along with disclosure of the details for the flaws addressed in each
32-
release in order to allow for complete impact assessment by users.
34+
* __CVE-2019-9511 “Data Dribble”__: The attacker requests a large amount of
35+
data from a specified resource over multiple streams. They manipulate window
36+
size and stream priority to force the server to queue the data in 1-byte
37+
chunks. Depending on how efficiently this data is queued, this can consume
38+
excess CPU, memory, or both, potentially leading to a denial of service.
39+
* __CVE-2019-9512 “Ping Flood”__: The attacker sends continual pings to an
40+
HTTP/2 peer, causing the peer to build an internal queue of responses.
41+
Depending on how efficiently this data is queued, this can consume excess
42+
CPU, memory, or both, potentially leading to a denial of service.
43+
* __CVE-2019-9513 “Resource Loop”__: The attacker creates multiple request
44+
streams and continually shuffles the priority of the streams in a way that
45+
causes substantial churn to the priority tree. This can consume excess CPU,
46+
potentially leading to a denial of service.
47+
* __CVE-2019-9514 “Reset Flood”__: The attacker opens a number of streams and
48+
sends an invalid request over each stream that should solicit a stream of
49+
RST\_STREAM frames from the peer. Depending on how the peer queues the
50+
RST\_STREAM frames, this can consume excess memory, CPU, or both, potentially
51+
leading to a denial of service.
52+
* __CVE-2019-9515 “Settings Flood”__: The attacker sends a stream of SETTINGS
53+
frames to the peer. Since the RFC requires that the peer reply with one
54+
acknowledgement per SETTINGS frame, an empty SETTINGS frame is almost
55+
equivalent in behavior to a ping. Depending on how efficiently this data is
56+
queued, this can consume excess CPU, memory, or both, potentially leading to
57+
a denial of service.
58+
* __CVE-2019-9516 “0-Length Headers Leak”__: The attacker sends a stream of
59+
headers with a 0-length header name and 0-length header value, optionally
60+
Huffman encoded into 1-byte or greater headers. Some implementations allocate
61+
memory for these headers and keep the allocation alive until the session
62+
dies. This can consume excess memory, potentially leading to a denial of
63+
service.
64+
* __CVE-2019-9517 “Internal Data Buffering”__: The attacker opens the HTTP/2
65+
window so the peer can send without constraint; however, they leave the TCP
66+
window closed so the peer cannot actually write (many of) the bytes on the
67+
wire. The attacker then sends a stream of requests for a large response
68+
object. Depending on how the servers queue the responses, this can consume
69+
excess memory, CPU, or both, potentially leading to a denial of service.
70+
* __CVE-2019-9518 “Empty Frames Flood”__: The attacker sends a stream of frames
71+
with an empty payload and without the end-of-stream flag. These frames can be
72+
DATA, HEADERS, CONTINUATION and/or PUSH\_PROMISE. The peer spends time
73+
processing each frame disproportionate to attack bandwidth. This can consume
74+
excess CPU, potentially leading to a denial of service. (Discovered by Piotr
75+
Sikora of Google)
3376

34-
## Contact and future updates
77+
### Contact and future updates
3578

3679
The current Node.js security policy and information about how to report a
3780
vulnerability can be found at https://nodejs.org/en/security/.

0 commit comments

Comments
 (0)