diff options
author | Rod Vagg <rod@vagg.org> | 2019-02-28 08:58:49 +0300 |
---|---|---|
committer | Rod Vagg <rod@vagg.org> | 2019-02-28 08:58:49 +0300 |
commit | e6a25300148c32872d6701dfa25c1210797beb4b (patch) | |
tree | d9ca781f6096e7f6ffc117871a0791c2044ff1cf | |
parent | b282c68ce831051ff9415b55f3928fed6e294339 (diff) |
2019-02-28, Version 6.17.0 'Boron' (LTS)v6.17.0
This is a security release. All Node.js users should consult the security
release summary at:
https://nodejs.org/en/blog/vulnerability/february-2019-security-releases/
for details on patched vulnerabilities.
Fixes for the following CVEs are included in this release:
* Node.js: Denial of Service with keep-alive HTTP connections
(CVE-2019-5739)
* Node.js: Slowloris HTTP Denial of Service with keep-alive
(CVE-2019-5737)
* OpenSSL: 0-byte record padding oracle (CVE-2019-1559)
Notable Changes:
* deps: OpenSSL has been upgraded to 1.0.2r which contains a fix for
CVE-2019-1559 (https://www.openssl.org/news/secadv/20190226.txt). Under
certain circumstances, a TLS server can be forced to respond differently to
a client if a zero-byte record is received with an invalid padding
compared to a zero-byte record with an invalid MAC. This can be used as the
basis of a padding oracle attack to decrypt data.
* http:
- Backport `server.keepAliveTimeout` to prevent keep-alive HTTP and HTTPS
connections remaining open and inactive for an extended period of time,
leading to a potential Denial of Service (DoS).
(CVE-2019-5739 / Timur Shemsedinov, Matteo Collina)
- Further prevention of "Slowloris" attacks on HTTP and HTTPS
connections by consistently applying the receive timeout set by
`server.headersTimeout` to connections in keep-alive mode. Reported by
Marco Pracucci (https://voxnest.com). (CVE-2019-5737 / Matteo Collina)
PR-URL: https://github.com/nodejs-private/node-private/pull/169
-rw-r--r-- | CHANGELOG.md | 3 | ||||
-rw-r--r-- | doc/api/http.md | 2 | ||||
-rw-r--r-- | doc/api/https.md | 2 | ||||
-rw-r--r-- | doc/changelogs/CHANGELOG_V6.md | 37 | ||||
-rw-r--r-- | src/node_version.h | 6 |
5 files changed, 44 insertions, 6 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 0dd160f2de2..77e1b9113a7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,7 +26,8 @@ release. </tr> <tr> <td valign="top"> -<b><a href="doc/changelogs/CHANGELOG_V6.md#6.16.0">6.16.0</a></b><br/> +<b><a href="doc/changelogs/CHANGELOG_V6.md#6.17.0">6.17.0</a></b><br/> +<a href="doc/changelogs/CHANGELOG_V6.md#6.16.0">6.16.0</a><br/> <a href="doc/changelogs/CHANGELOG_V6.md#6.15.1">6.15.1</a><br/> <a href="doc/changelogs/CHANGELOG_V6.md#6.15.0">6.15.0</a><br/> <a href="doc/changelogs/CHANGELOG_V6.md#6.14.4">6.14.4</a><br/> diff --git a/doc/api/http.md b/doc/api/http.md index cc2b7eea3cb..38a2bcb641b 100644 --- a/doc/api/http.md +++ b/doc/api/http.md @@ -885,7 +885,7 @@ value only affects new connections to the server, not any existing connections. ### server.keepAliveTimeout <!-- YAML -added: REPLACEME +added: v6.17.0 --> * {number} Timeout in milliseconds. Defaults to 5000 (5 seconds). diff --git a/doc/api/https.md b/doc/api/https.md index e42b79596c5..03d13892092 100644 --- a/doc/api/https.md +++ b/doc/api/https.md @@ -48,7 +48,7 @@ See [`http.Server#timeout`][]. ### server.keepAliveTimeout <!-- YAML -added: REPLACEME +added: v6.17.0 --> - {number} Defaults to 5000 (5 seconds). diff --git a/doc/changelogs/CHANGELOG_V6.md b/doc/changelogs/CHANGELOG_V6.md index 4c222b5c877..b06ca752a85 100644 --- a/doc/changelogs/CHANGELOG_V6.md +++ b/doc/changelogs/CHANGELOG_V6.md @@ -7,6 +7,7 @@ </tr> <tr> <td valign="top"> +<a href="#6.17.0">6.17.0</a><br/> <a href="#6.16.0">6.16.0</a><br/> <a href="#6.15.1">6.15.1</a><br/> <a href="#6.15.0">6.15.0</a><br/> @@ -68,6 +69,42 @@ [Node.js Long Term Support Plan](https://github.com/nodejs/LTS) and will be supported actively until April 2018 and maintained until April 2019. +<a id="6.17.0"></a> +## 2018-02-28, Version 6.17.0 'Boron' (LTS), @rvagg + +This is a security release. All Node.js users should consult the security release summary at: + + https://nodejs.org/en/blog/vulnerability/february-2019-security-releases/ + +for details on patched vulnerabilities. + +Fixes for the following CVEs are included in this release: + + * Node.js: Denial of Service with keep-alive HTTP connections (CVE-2019-5739) + * Node.js: Slowloris HTTP Denial of Service with keep-alive (CVE-2019-5737) + * OpenSSL: 0-byte record padding oracle (CVE-2019-1559) + +### Notable Changes + +* **deps**: OpenSSL has been upgraded to 1.0.2r which contains a fix for [CVE-2019-1559](https://www.openssl.org/news/secadv/20190226.txt). Under certain circumstances, a TLS server can be forced to respond differently to a client if a zero-byte record is received with an invalid _padding_ compared to a zero-byte record with an invalid _MAC_. This can be used as the basis of a padding oracle attack to decrypt data. +* **http**: + - Backport `server.keepAliveTimeout` to prevent keep-alive HTTP and HTTPS connections remaining open and inactive for an extended period of time, leading to a potential Denial of Service (DoS). (CVE-2019-5739 / [Timur Shemsedinov](https://github.com/tshemsedinov), [Matteo Collina](https://twitter.com/matteocollina)) + - Further prevention of "Slowloris" attacks on HTTP and HTTPS connections by consistently applying the receive timeout set by `server.headersTimeout` to connections in keep-alive mode. Reported by Marco Pracucci ([Voxnest](https://voxnest.com)). (CVE-2019-5737 / Matteo Collina) + +### Commits + +* [[`b282c68ce8`](https://github.com/nodejs/node/commit/b282c68ce8)] - **deps**: add -no\_rand\_screen to openssl s\_client (Shigeki Ohtsu) [nodejs/io.js#1836](https://github.com/nodejs/io.js/pull/1836) +* [[`a80ef49dcf`](https://github.com/nodejs/node/commit/a80ef49dcf)] - **deps**: fix asm build error of openssl in x86\_win32 (Shigeki Ohtsu) [iojs/io.js#1389](https://github.com/iojs/io.js/pull/1389) +* [[`1d3c412101`](https://github.com/nodejs/node/commit/1d3c412101)] - **deps**: fix openssl assembly error on ia32 win32 (Fedor Indutny) [iojs/io.js#1389](https://github.com/iojs/io.js/pull/1389) +* [[`661fd61c3a`](https://github.com/nodejs/node/commit/661fd61c3a)] - **deps**: copy all openssl header files to include dir (Shigeki Ohtsu) +* [[`da12284235`](https://github.com/nodejs/node/commit/da12284235)] - **deps**: upgrade openssl sources to 1.0.2r (Shigeki Ohtsu) +* [[`b13b4a9ffb`](https://github.com/nodejs/node/commit/b13b4a9ffb)] - **http**: prevent slowloris with keepalive connections (Matteo Collina) [nodejs-private/node-private#162](https://github.com/nodejs-private/node-private/pull/162) +* [[`e9ae4aaaad`](https://github.com/nodejs/node/commit/e9ae4aaaad)] - **http**: fix timeout reset after keep-alive timeout (Alexey Orlenko) [#13549](https://github.com/nodejs/node/pull/13549) +* [[`f23b3b6bad`](https://github.com/nodejs/node/commit/f23b3b6bad)] - **(SEMVER-MINOR)** **http**: destroy sockets after keepAliveTimeout (Timur Shemsedinov) [#2534](https://github.com/nodejs/node/pull/2534) +* [[`190894448b`](https://github.com/nodejs/node/commit/190894448b)] - **openssl**: fix keypress requirement in apps on win32 (Shigeki Ohtsu) [iojs/io.js#1389](https://github.com/iojs/io.js/pull/1389) +* [[`06a208d316`](https://github.com/nodejs/node/commit/06a208d316)] - **test**: refactor test-http-server-keep-alive-timeout (realwakka) [#13448](https://github.com/nodejs/node/pull/13448) +* [[`1c7fbdc53b`](https://github.com/nodejs/node/commit/1c7fbdc53b)] - **test**: improve test-https-server-keep-alive-timeout (Rich Trott) [#13312](https://github.com/nodejs/node/pull/13312) + <a id="6.16.0"></a> ## 2018-12-26, Version 6.16.0 'Boron' (LTS), @MylesBorins diff --git a/src/node_version.h b/src/node_version.h index 05a5438e100..f3795636320 100644 --- a/src/node_version.h +++ b/src/node_version.h @@ -2,13 +2,13 @@ #define SRC_NODE_VERSION_H_ #define NODE_MAJOR_VERSION 6 -#define NODE_MINOR_VERSION 16 -#define NODE_PATCH_VERSION 1 +#define NODE_MINOR_VERSION 17 +#define NODE_PATCH_VERSION 0 #define NODE_VERSION_IS_LTS 1 #define NODE_VERSION_LTS_CODENAME "Boron" -#define NODE_VERSION_IS_RELEASE 0 +#define NODE_VERSION_IS_RELEASE 1 #ifndef NODE_STRINGIFY #define NODE_STRINGIFY(n) NODE_STRINGIFY_HELPER(n) |