Skip to content

Commit

Permalink
2021-02-23, Version 14.16.0 'Fermium' (LTS)
Browse files Browse the repository at this point in the history
This is a security release.

Notable changes:

Vulnerabilities fixed:

- **CVE-2021-22883**: HTTP2 'unknownProtocol' cause Denial of Service by
    resource exhaustion
- **CVE-2021-22884**: DNS rebinding in --inspect
- **CVE-2021-23840**: OpenSSL - Integer overflow in CipherUpdate

PR-URL: nodejs-private/node-private#254
  • Loading branch information
BethGriggs committed Feb 22, 2021
1 parent 313d268 commit bd60e93
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 7 deletions.
3 changes: 2 additions & 1 deletion CHANGELOG.md
Expand Up @@ -30,7 +30,8 @@ release.
</tr>
<tr>
<td valign="top">
<b><a href="doc/changelogs/CHANGELOG_V14.md#14.15.5">14.15.5</a></b><br/>
<b><a href="doc/changelogs/CHANGELOG_V14.md#14.16.0">14.16.0</a></b><br/>
<a href="doc/changelogs/CHANGELOG_V14.md#14.15.5">14.15.5</a><br/>
<a href="doc/changelogs/CHANGELOG_V14.md#14.15.4">14.15.4</a><br/>
<a href="doc/changelogs/CHANGELOG_V14.md#14.15.3">14.15.3</a><br/>
<a href="doc/changelogs/CHANGELOG_V14.md#14.15.2">14.15.2</a><br/>
Expand Down
6 changes: 3 additions & 3 deletions doc/api/http2.md
Expand Up @@ -2054,7 +2054,7 @@ value only affects new connections to the server, not any existing connections.
<!-- YAML
added: v8.4.0
changes:
- version: REPLACEME
- version: v14.16.0
pr-url: https://github.com/nodejs-private/node-private/pull/250
description: Added `unknownProtocolTimeout` option with a default of 10000.
- version:
Expand Down Expand Up @@ -2203,7 +2203,7 @@ server.listen(80);
<!-- YAML
added: v8.4.0
changes:
- version: REPLACEME
- version: v14.16.0
pr-url: https://github.com/nodejs-private/node-private/pull/250
description: Added `unknownProtocolTimeout` option with a default of 10000.
- version:
Expand Down Expand Up @@ -2339,7 +2339,7 @@ server.listen(80);
<!-- YAML
added: v8.4.0
changes:
- version: REPLACEME
- version: v14.16.0
pr-url: https://github.com/nodejs-private/node-private/pull/250
description: Added `unknownProtocolTimeout` option with a default of 10000.
- version:
Expand Down
24 changes: 24 additions & 0 deletions doc/changelogs/CHANGELOG_V14.md
Expand Up @@ -11,6 +11,7 @@
</tr>
<tr>
<td valign="top">
<a href="#14.16.0">14.16.0</a><br/>
<a href="#14.15.5">14.15.5</a><br/>
<a href="#14.15.4">14.15.4</a><br/>
<a href="#14.15.3">14.15.3</a><br/>
Expand Down Expand Up @@ -56,6 +57,29 @@
* [io.js](CHANGELOG_IOJS.md)
* [Archive](CHANGELOG_ARCHIVE.md)

<a id="14.16.0"></a>
## 2021-02-23, Version 14.16.0 'Fermium' (LTS), @BethGriggs

This is a security release.

### Notable changes

Vulnerabilities fixed:

* **CVE-2021-22883**: HTTP2 'unknownProtocol' cause Denial of Service by resource exhaustion
* Affected Node.js versions are vulnerable to denial of service attacks when too many connection attempts with an 'unknownProtocol' are established. This leads to a leak of file descriptors. If a file descriptor limit is configured on the system, then the server is unable to accept new connections and prevent the process also from opening, e.g. a file. If no file descriptor limit is configured, then this lead to an excessive memory usage and cause the system to run out of memory.
* **CVE-2021-22884**: DNS rebinding in --inspect
* Affected Node.js versions are vulnerable to denial of service attacks when the whitelist includes “localhost6”. When “localhost6” is not present in /etc/hosts, it is just an ordinary domain that is resolved via DNS, i.e., over network. If the attacker controls the victim's DNS server or can spoof its responses, the DNS rebinding protection can be bypassed by using the “localhost6” domain. As long as the attacker uses the “localhost6” domain, they can still apply the attack described in CVE-2018-7160.
* **CVE-2021-23840**: OpenSSL - Integer overflow in CipherUpdate
* This is a vulnerability in OpenSSL which may be exploited through Node.js. You can read more about it in https://www.openssl.org/news/secadv/20210216.txt

### Commits

* [[`313d26800c`](https://github.com/nodejs/node/commit/313d26800c)] - **deps**: update archs files for OpenSSL-1.1.1j (Daniel Bevenius) [#37412](https://github.com/nodejs/node/pull/37412)
* [[`6098012b48`](https://github.com/nodejs/node/commit/6098012b48)] - **deps**: upgrade openssl sources to 1.1.1j (Daniel Bevenius) [#37412](https://github.com/nodejs/node/pull/37412)
* [[`afea10b097`](https://github.com/nodejs/node/commit/afea10b097)] - **(SEMVER-MINOR)** **http2**: add unknownProtocol timeout (Daniel Bevenius) [nodejs-private/node-private#246](https://github.com/nodejs-private/node-private/pull/246)
* [[`1ca3f5abcb`](https://github.com/nodejs/node/commit/1ca3f5abcb)] - **src**: drop localhost6 as allowed host for inspector (Matteo Collina) [nodejs-private/node-private#244](https://github.com/nodejs-private/node-private/pull/244)

<a id="14.15.5"></a>
## 2021-02-09, Version 14.15.5 'Fermium' (LTS), @BethGriggs

Expand Down
6 changes: 3 additions & 3 deletions src/node_version.h
Expand Up @@ -23,13 +23,13 @@
#define SRC_NODE_VERSION_H_

#define NODE_MAJOR_VERSION 14
#define NODE_MINOR_VERSION 15
#define NODE_PATCH_VERSION 6
#define NODE_MINOR_VERSION 16
#define NODE_PATCH_VERSION 0

#define NODE_VERSION_IS_LTS 1
#define NODE_VERSION_LTS_CODENAME "Fermium"

#define NODE_VERSION_IS_RELEASE 0
#define NODE_VERSION_IS_RELEASE 1

#ifndef NODE_STRINGIFY
#define NODE_STRINGIFY(n) NODE_STRINGIFY_HELPER(n)
Expand Down

0 comments on commit bd60e93

Please sign in to comment.