Skip to content

Releases: nodejs/node

2022-11-04, Version 16.18.1 'Gallium' (LTS), @BethGriggs

04 Nov 17:57
v16.18.1
25307a3
Compare
Choose a tag to compare

This is a security release.

Notable changes

The following CVEs are fixed in this release:

  • CVE-2022-43548: DNS rebinding in --inspect via invalid octal IP address (Medium)

More detailed information on each of the vulnerabilities can be found in November 2022 Security Releases blog post.

Commits

2022-11-04, Version 14.21.1 'Fermium' (LTS), @BethGriggs

04 Nov 17:56
v14.21.1
3f8f4c6
Compare
Choose a tag to compare

This is a security release.

Notable changes

The following CVEs are fixed in this release:

  • CVE-2022-43548: DNS rebinding in --inspect via invalid octal IP address (Medium)

More detailed information on each of the vulnerabilities can be found in November 2022 Security Releases blog post.

Commits

2022-11-01, Version 14.21.0 'Fermium' (LTS), @danielleadams

01 Nov 21:44
v14.21.0
f7e5f28
Compare
Choose a tag to compare

Notable changes

  • deps:
    • update corepack to 0.14.2 (Node.js GitHub Bot) #44775
  • src:
    • add --openssl-shared-config option (Daniel Bevenius) #43124

Commits

2022-10-25, Version 18.12.0 'Hydrogen' (LTS), @ruyadorno and @RafaelGSS

25 Oct 21:43
v18.12.0
a4bcc81
Compare
Choose a tag to compare

Notable Changes

This release marks the transition of Node.js 18.x into Long Term Support (LTS)
with the codename 'Hydrogen'. The 18.x release line now moves into "Active LTS"
and will remain so until October 2023. After that time, it will move into
"Maintenance" until end of life in April 2025.

2022-10-18, Version 19.0.0 (Current), @RafaelGSS and @ruyadorno

18 Oct 16:00
v19.0.0
Compare
Choose a tag to compare

Node.js 19 is here! Highlights include the update of the V8 JavaScript engine to 10.7, HTTP(s)/1.1 KeepAlive enabled by default, and ESM Resolution adjustments.

Node.js 19 will replace Node.js 18 as our β€˜Current’ release line when Node.js 18 enters long-term support (LTS) later this month.
As per the release schedule, Node.js 19 will be β€˜Current' release for the next 6 months, until April 2023.

Notable Changes

Deprecations and Removals

  • [7dd2f41c73] - (SEMVER-MAJOR) module: runtime deprecate exports double slash maps (Guy Bedford) #44495
  • [ada2d053ae] - (SEMVER-MAJOR) process: runtime deprecate coercion to integer in process.exit() (Daeyeon Jeong) #44711

HTTP(S)/1.1 KeepAlive by default

Starting with this release, Node.js sets keepAlive to true by default. This means that any outgoing HTTP(s) connection will automatically use HTTP 1.1 Keep-Alive. The default waiting window is 5 seconds.
Enable keep-alive will deliver better throughput as connections are reused by default.

Additionally, the agent is now able to parse the response Keep-Alive which the servers might send. This header instructs the client on how much to stay connected.
On the other side, the Node.js HTTP server will now automatically disconnect idle clients (which are using HTTP Keep-Alive to reuse the connection) when close() is invoked).

Node.js HTTP(S)/1.1 requests may experience a better throughput/performance by default.

Contributed by Paolo Insogna in #43522

DTrace/SystemTap/ETW Support were removed

The main reason is the lack of resources from the Node.js team. The complexity to keep the support up-to-date has proved not worth it without a clear plan to support those tools. Hence, an issue was raised in the Node.js repository to assess better support, for DTrace in specific.

Contributed by Ben Noordhuis in #43651 and #43652

V8 10.7

The V8 engine is updated to version 10.7, which is part of Chromium 107.
This version include a new feature to the JavaScript API: Intl.NumberFormat.

Intl.NumberFormat v3 API is a new TC39 ECMA402 stage 3 proposal
extend the pre-existing Intl.NumberFormat.

The V8 update was a contribution by MichaΓ«l Zasso in #44741.

llhttp 8.1.0

llhttp has been updated to version 8.1.0. Collectively, this version brings many updates to the llhttp API, introducing new callbacks and allow all callback to be pausable.

Contributed by Paolo Insogna in #44967

Other Notable Changes

Semver-Major Commits

  • [53f73d1cfe] - (SEMVER-MAJOR) build: enable V8's trap handler on Windows (MichaΓ«l Zasso) #44741
  • [06aaf8a1c4] - (SEMVER-MAJOR) build: reset embedder string to "-node.0" (MichaΓ«l Zasso) #44741
  • [aa3a572e6b] - (SEMVER-MAJOR) build: remove dtrace & etw support (Ben Noordhuis) #43652
  • [38f1e2793c] - (SEMVER-MAJOR) build: remove systemtap support (Ben Noordhuis) #43651
  • [2849283c4c] - (SEMVER-MAJOR) crypto: remove non-standard webcrypto.Crypto.prototype.CryptoKey (Antoine du Hamel) #42083
  • [a1653ac715] - (SEMVER-MAJOR) crypto: do not allow to call setFips from the worker thread (Sergey Petushkov) #43624
  • [fd36a8dadb] - (SEMVER-MAJOR) deps: update llhttp to 8.1.0 (Paolo Insogna) #44967
  • [89ecdddaab] - (SEMVER-MAJOR) deps: bump minimum ICU version to 71 (MichaΓ«l Zasso) #44741
  • [66fe446efd] - (SEMVER-MAJOR) deps: V8: cherry-pick 0cccb6f27d78 (MichaΓ«l Zasso) #44741
  • [88ed027d57] - (SEMVER-MAJOR) deps: V8: cherry-pick 7ddb8399f9f1 (MichaΓ«l Zasso) #44741
  • [26c651c34e] - (SEMVER-MAJOR) deps: V8: cherry-pick 1b3a4f0c34a1 (MichaΓ«l Zasso) #44741
  • [c8ff2dfd11] - (SEMVER-MAJOR) deps: V8: cherry-pick b161a0823165 (MichaΓ«l Zasso) #44741
  • [7a8fa2d517] - (SEMVER-MAJOR) deps: fix V8 build on Windows with MSVC (MichaΓ«l Zasso) #44741
  • [83b0aaa800] - (SEMVER-MAJOR) deps: fix V8 build on SmartOS (MichaΓ«l Zasso) #44741
  • [7a952e8ea5] - (SEMVER-MAJOR) deps: silence irrelevant V8 warning (MichaΓ«l Zasso) #44741
  • [6bd756d7c6] - (SEMVER-MAJOR) deps: update V8 to 10.7.193.13 (MichaΓ«l Zasso) #44741
  • [03fb789fb9] - (SEMVER-MAJOR) events: add null check for the signal of EventTarget (Masashi Hirano) #43153
  • [a4fa526ddc] - (SEMVER-MAJOR) fs: add directory autodetection to fsPromises.symlink() (Livia Medeiros) #42894
  • [bb4891d8d4] - (SEMVER-MAJOR) fs: add validateBuffer to improve error (Hirotaka Tagawa / wafuwafu13) #44769
  • [950a4411fa] - (SEMVER-MAJOR) fs: remove coercion to string in writing methods (Livia Medeiros) #42796
  • [41a6d82968] - (SEMVER-MAJOR) fs: harden fs.readSync(buffer, options) typecheck (LiviaMedeiros) #42772
  • [2275faac2b] - (SEMVER-MAJOR) fs: harden fs.read(params, callback) typecheck (LiviaMedeiros) #42772
  • [29953a0b88] - (SEMVER-MAJOR) fs: harden filehandle.read(params) typecheck (LiviaMedeiros) #42772
  • [4267b92604] - (SEMVER-MAJOR) http: use Keep-Alive by default in global agents (Paolo Insogna) #43522
  • [0324529e0f] - (SEMVER-MAJOR) inspector: introduce inspector/promises API (Erick Wendel) #44250
  • [80270994d6] - (SEMVER-MAJOR) lib: enable global CustomEvent by default (Daeyeon Jeong) #44860
  • [f529f73bd7] - (SEMVER-MAJOR) lib: brand check event handler property receivers (Chengzhong Wu) #44483
  • [6de2673a9f] - (SEMVER-MAJOR) lib: enable global WebCrypto by default (Antoine du Hamel) #42083
  • [73ba8830d5] - (SEMVER-MAJOR) lib: use private field in AbortController (Joyee Cheung) #43820
  • [7dd2f41c73] - (SEMVER-MAJOR) module: runtime deprecate exports double slash maps (Guy Bedford) #44495
  • [22c39b1ddd] - (SEMVER-MAJOR) path: the dot will be added(path.format) if it is not specified in ext (theanarkh) #44349
  • [587367d107] - **(SEMVER-MA...
Read more

2022-10-13, Version 18.11.0 (Current), @danielleadams

13 Oct 23:44
v18.11.0
8c1dd95
Compare
Choose a tag to compare

Notable changes

watch mode (experimental)

Running in 'watch' mode using node --watch restarts the process when an imported file is changed.

Contributed by Moshe Atlow in #44366

Other notable changes

  • fs:
    • (SEMVER-MINOR) add FileHandle.prototype.readLines (Antoine du Hamel) #42590
  • http:
    • (SEMVER-MINOR) add writeEarlyHints function to ServerResponse (Wing) #44180
  • http2:
    • (SEMVER-MINOR) make early hints generic (Yagiz Nizipli) #44820
  • lib:
    • (SEMVER-MINOR) refactor transferable AbortSignal (flakey5) #44048
  • src:
    • (SEMVER-MINOR) add detailed embedder process initialization API (Anna Henningsen) #44121
  • util:
    • (SEMVER-MINOR) add default value option to parsearg (Manuel Spigolon) #44631

Commits

Read more

2022-10-12, Version 16.18.0 'Gallium' (LTS), @juanarbol

12 Oct 15:02
Compare
Choose a tag to compare

Notable changes

  • [1cc050eaa8] - (SEMVER-MINOR) assert: add getCalls and reset to callTracker (Moshe Atlow) #44191
  • [e5c9975f11] - (SEMVER-MINOR) crypto: allow zero-length secret KeyObject (Filip Skokan) #44201
  • [317cd051ce] - (SEMVER-MINOR) crypto: allow zero-length IKM in HKDF and in webcrypto PBKDF2 (Filip Skokan) #44201
  • [f80bdc5ef3] - (SEMVER-MINOR) doc: deprecate modp1, modp2, and modp5 groups (Tobias Nießen) #44588
  • [8398e98b1b] - (SEMVER-MINOR) http: make idle http parser count configurable (theanarkh) #43974
  • [2cd2f56962] - (SEMVER-MINOR) http: throw error on content-length mismatch (sidwebworks) #44378
  • [6be761e8a9] - (SEMVER-MINOR) lib: add diagnostics channel for process and worker (theanarkh) #44045
  • [1400796cef] - (SEMVER-MINOR) net,tls: pass a valid socket on tlsClientError (Daeyeon Jeong) #44021
  • [092239a7f1] - (SEMVER-MINOR) net: add local family (theanarkh) #43975
  • [381e11e18e] - (SEMVER-MINOR) report: expose report public native apis (Chengzhong Wu) #44255
  • [2ba547aa5b] - (SEMVER-MINOR) src: expose environment RequestInterrupt api (Chengzhong Wu) #44362
  • [6ed3367155] - (SEMVER-MINOR) stream: add ReadableByteStream.tee() (Daeyeon Jeong) #44505
  • [0fbedac6ce] - (SEMVER-MINOR) test_runner: add before/after/each hooks (Moshe Atlow) #43730
  • [70563b53c5] - (SEMVER-MINOR) util: add maxArrayLength option to Set and Map (Kohei Ueno) #43576

Commits

  • [1cc050eaa8] - (SEMVER-MINOR) assert: add getCalls and reset to callTracker (Moshe Atlow) #44191
  • [2e87cdd1e6] - benchmark: fix startup benchmark (Evan Lucas) #44727
  • [29c0f9ef30] - benchmark: add stream destroy benchmark (SindreXie) #44533
  • [f01bb58c1e] - bootstrap: update comments in bootstrap/node.js (Joyee Cheung) #44726
  • [db151e182f] - bootstrap: stop delaying instantiation of maps in per-context scripts (Darshan Sen) #42934
  • [f700074c57] - buffer: fix atob input validation (Austin Kelleher) #42662
  • [e10095a759] - build: update timezone-update.yml (Alex) #44717
  • [bec2ede687] - build: remove redundant entry in crypto (Jiawen Geng) #44604
  • [7b3a2c3353] - build: rewritten the Android build system (BuShe Pie) #44207
  • [e96bb14942] - build: add --libdir flag to configure (Stephen Gallagher) #44361
  • [2a4491b34d] - build: added NINJA env to customize ninja binary (Jeff Dickey) #44293
  • [aaad7a64b4] - build: enable pointer authentication for branch protection on arm64 (Jeremiah Gowdy) #43200
  • [041bb54143] - build: add workflow to label flaky-test platform (Rafael Gonzaga) #44042
  • [58d85c1109] - build: optimized and fixed building configuration to Android (BuShe) #44016
  • [5cd8b7bc8b] - build: allow test-internet on forks if not scheduled (Rich Trott) #44073
  • [9698be9347] - build: skip test-internet run on forks (Rich Trott) #44054
  • [25e6f48e4a] - child_process: remove lookup of undefined property (Colin Ihrig) #44766
  • [a3bdd07321] - cluster: fix cluster rr distribute error (theanarkh) #44202
  • [317cd051ce] - (SEMVER-MINOR) crypto: allow zero-length IKM in HKDF and in webcrypto PBKDF2 (Filip Skokan) #44201
  • [e5c9975f11] - (SEMVER-MINOR) crypto: allow zero-length secret KeyObject (Filip Skokan) #44201
  • [7e705d8d74] - crypto: fix webcrypto deriveBits validations (Filip Skokan) #44173
  • [7ad2a268b9] - crypto: fix webcrypto EC key namedCurve validation errors (Filip Skokan) #44172
  • [2c938d73ff] - crypto: fix webcrypto operation errors to be OperationError (Filip Skokan) #44171
  • [a6e2cb40a6] - crypto: fix webcrypto generateKey() AES key length validation error (Filip Skokan) #44170
  • [7e07cce24b] - crypto: use EVP_PKEY_CTX_set_dsa_paramgen_q_bits when available (David Benjamin) #44561
  • [1fc6394741] - crypto: restrict PBKDF2 args to signed int (Tobias Nießen) #44575
  • [9a52ee7577] - crypto: handle invalid prepareAsymmetricKey JWK inputs (Filip Skokan) #44475
  • [7100baee40] - crypto: use actual option name in error message (Tobias Nießen) #44455
  • [579e066c3a] - crypto: add digest name to INVALID_DIGEST errors (Tobias Nießen) #44468
  • [566d80f622] - crypto: improve RSA-PSS digest error messages (Tobias Nießen) #44307
  • [f717c1e06a] - debugger: decrease timeout used to wait for the port to be free (Joyee Cheung) #44359
  • [0f2fcaf771] - deps: update to ngtcp2 0.8.1 and nghttp3 0.7.0 (Tobias Nießen) #44622
  • [1a8aada69d] - deps: update corepack to 0.14.1 (Node.js GitHub Bot) #44704
  • [e4f18b4f34] - deps: update ngtcp2 update instructions (Tobias Nießen) #44619
  • [21b5ab1494] - deps: upgrade npm to 8.19.2 (npm team) #44632
  • [916b319e7a] - deps: update to uvwasi 0.0.13 (Colin Ihrig) #44524
  • [67cbbcc902] - deps: update cor...
Read more

2022-09-28, Version 18.10.0 (Current), @RafaelGSS

28 Sep 17:43
v18.10.0
Compare
Choose a tag to compare

Notable changes

  • doc:
    • (SEMVER-MINOR) deprecate modp1, modp2, and modp5 groups (Tobias Nießen) #44588
    • add legendecas to TSC list (Michael Dawson) #44662
    • move policy docs to the permissions scope (Rafael Gonzaga) #44222
  • gyp:
    • libnode for ios app embedding (chexiongsheng) #44210
  • http:
    • (SEMVER-MINOR) throw error on content-length mismatch (sidwebworks) #44588
  • stream:
    • (SEMVER-MINOR) add ReadableByteStream.tee() (Daeyeon Jeong) #44505

Commits

  • [f497368679] - benchmark: fix startup benchmark (Evan Lucas) #44727
  • [0c9a94684e] - benchmark: add stream destroy benchmark (SindreXie) #44533
  • [9c5c1459a8] - bootstrap: clean up inspector console methods during serialization (Joyee Cheung) #44279
  • [19f67dba8a] - bootstrap: remove unused global parameter in per-context scripts (Joyee Cheung) #44472
  • [9da11426f6] - build: remove redundant entry in crypto (Jiawen Geng) #44604
  • [70898b4e67] - build: rewritten the Android build system (BuShe Pie) #44207
  • [a733f7faac] - Revert "build: go faster, drop -fno-omit-frame-pointer" (Ben Noordhuis) #44566
  • [1315a83333] - build: fix bad upstream merge (Stephen Gallagher) #44642
  • [993bd9b134] - crypto: restrict PBKDF2 args to signed int (Tobias Nießen) #44575
  • [ca5fb67b4e] - deps: update to ngtcp2 0.8.1 and nghttp3 0.7.0 (Tobias Nießen) #44622
  • [8da1d6ebc4] - deps: update corepack to 0.14.1 (Node.js GitHub Bot) #44704
  • [d36c4a3088] - deps: update ngtcp2 update instructions (Tobias Nießen) #44619
  • [7129106aa0] - deps: upgrade npm to 8.19.2 (npm team) #44632
  • [3cc8f4bb56] - deps: update to uvwasi 0.0.13 (Colin Ihrig) #44524
  • [4686579d4b] - dns: remove unnecessary parameter from validateOneOf (Yagiz Nizipli) #44635
  • [729dd95f1f] - dns: refactor default resolver (Joyee Cheung) #44541
  • [6dc038262a] - doc: mention git node backport (RafaelGSS) #44764
  • [fd971f5176] - doc: ensure to revert node_version changes (Rafael Gonzaga) #44760
  • [f274b08f8e] - doc: fix description for napi_get_cb_info() in n-api.md (Daeyeon Jeong) #44761
  • [2502f2353d] - doc: update the deprecation for exit code to clarify its scope (Daeyeon Jeong) #44714
  • [064543d0ae] - doc: update guidance for adding new modules (Michael Dawson) #44576
  • [33a2f17534] - doc: add registry number for Electron 22 (Keeley Hammond) #44748
  • [10a0d75c26] - doc: include code examples for webstreams consumers (Lucas Santos) #44387
  • [4dbe4a010c] - doc: mention where to push security commits (RafaelGSS) #44691
  • [82cb8151ad] - doc: remove extra space on threadpool usage (Connor Burton) #44734
  • [6ef9af2748] - doc: make legacy banner slightly less bright (Rich Trott) #44665
  • [b209c83e66] - doc: improve building doc for Windows Powershell (Brian Muenzenmeyer) #44625
  • [05b17e9250] - doc: maintain only one list of MODP groups (Tobias Nießen) #44644
  • [ec1cbdb69b] - doc: add legendecas to TSC list (Michael Dawson) #44662
  • [9341fb4446] - doc: remove comma in README.md (Taha-Chaudhry) #44599
  • [3dabb44dda] - doc: use serial comma in report docs (Daeyeon Jeong) #44608
  • [226d90a95a] - doc: use serial comma in stream docs (Daeyeon Jeong) #44609
  • [3f710fa636] - doc: remove empty line in YAML block (Claudio Wunder) #44617
  • [4ad1b0abc3] - (SEMVER-MINOR) doc: deprecate modp1, modp2, and modp5 groups (Tobias Nießen) #44588
  • [2d92610525] - doc: remove old OpenSSL ENGINE constants (Tobias Nießen) #44589
  • [03705639c4] - doc: fix heading levels for test runner hooks (Fabian Meyer) #44603
  • [6c557346a7] - doc: fix errors in http.md (Luigi Pinca) #44587
  • [48d944b71c] - doc: fix vm.Script createCachedData example (Chengzhong Wu) #44487
  • [2813323120] - doc: mention how to get commit release (Rafael Gonzaga) #44572
  • [ea7b44d474] - doc: fix link in process.md (Antoine du Hamel) #44594
  • [39b65d2fb7] - doc: do not use weak MODP group in example (Tobias Nießen) #44585
  • [f5549afd90] - doc: remove ebpf from supported tooling list (Rafael Gonzaga) #44549
  • [a3360b1f4f] - doc: emphasize that createCipher is never secure (Tobias Nießen) #44538
  • [4e6f7862ba] - doc: document attribute Script.cachedDataRejected (Chengzhong Wu) #44451
  • [01e584ecab] - doc: move policy docs to the permissions scope (Rafael Gonzaga) #44222
  • [57dac53c22] - doc,crypto: cleanup removed pbkdf2 behaviours (Filip Skokan) #44733
  • [c209bd6fb9] - doc,inspector: document changes of inspector.close (Chengzhong Wu) #44628
  • [9b3b7d6978] - esm,loader: tidy ESMLoader internals (Jacob Smith) #44701
  • [daf63d2fa3] - fs: fix typo in mkdir example (SergeyTsukanov) #44791
  • [[`85ab2...
Read more

2022-09-23, Version 18.9.1 (Current), @RafaelGSS

23 Sep 16:11
v18.9.1
Compare
Choose a tag to compare

This is a security release.

Notable changes

The following CVEs are fixed in this release:

  • CVE-2022-32212: DNS rebinding in --inspect on macOS (High)
    • Insufficient fix for macOS devices on v18.5.0
  • CVE-2022-32222: Node 18 reads openssl.cnf from /home/iojs/build/ upon startup on MacOS (Medium)
  • CVE-2022-32213: HTTP Request Smuggling - Flawed Parsing of Transfer-Encoding (Medium)
    • Insufficient fix on v18.5.0
  • CVE-2022-32215: HTTP Request Smuggling - Incorrect Parsing of Multi-line Transfer-Encoding (Medium)
    • Insufficient fix on v18.5.0
  • CVE-2022-35256: HTTP Request Smuggling - Incorrect Parsing of Header Fields (Medium)
  • CVE-2022-35255: Weak randomness in WebCrypto keygen

More detailed information on each of the vulnerabilities can be found in September 22nd 2022 Security Releases blog post.

llhttp updated to 6.0.10

llhttp is updated to 6.0.10 which includes fixes for the following vulnerabilities.

  • HTTP Request Smuggling - CVE-2022-32213 bypass via obs-fold mechanic (Medium)(CVE-2022-32213 ): The llhttp parser in the http module does not correctly parse and validate Transfer-Encoding headers. This can lead to HTTP Request Smuggling (HRS).
  • HTTP Request Smuggling - Incorrect Parsing of Multi-line Transfer-Encoding (Medium)(CVE-2022-32215): The llhttp parser in the http module does not correctly handle multi-line Transfer-Encoding headers. This can lead to HTTP Request Smuggling (HRS).
  • HTTP Request Smuggling - Incorrect Parsing of Header Fields (Medium)(CVE-35256): The llhttp parser in the http does not correctly handle header fields that are not terminated with CLRF. This can lead to HTTP Request Smuggling (HRS).

Commits

2022-09-23, Version 16.17.1 'Gallium' (LTS), @ruyadorno

23 Sep 16:11
v16.17.1
6b06e89
Compare
Choose a tag to compare

This is a security release.

Notable changes

The following CVEs are fixed in this release:

More detailed information on each of the vulnerabilities can be found in September 22nd 2022 Security Releases blog post.

Commits