Node v17.3.0 (Current)

Danielle Adams

Notable changes

OpenSSL-3.0.1

OpenSSL-3.0.1 contains a fix for CVE-2021-4044: Invalid handling of X509_verify_cert() internal errors in libssl (Moderate). This is a vulnerability in OpenSSL that may be exploited through Node.js. More information can be read here: https://www.openssl.org/news/secadv/20211214.txt.

Contributed by Richard Lau #41177.

Other Notable Changes

  • lib:
    • make AbortSignal cloneable/transferable (James M Snell) #41050
  • deps:
    • upgrade npm to 8.3.0 (npm team) #41127
  • doc:
    • add @bnb as a collaborator (Tierney Cyren) #41100
  • process:
    • add getActiveResourcesInfo() (Darshan Sen) #40813
  • timers:
    • add experimental scheduler api (James M Snell) #40909

Commits

  • [99fb6d48eb] - assert: prefer reference comparison over string comparison (Darshan Sen) #41015
  • [a7dfa43dc7] - assert: use stricter stack frame detection in .ifError() (Ruben Bridgewater) #41006
  • [28761de6d4] - buffer: fix Blob constructor on various TypedArrays (Irakli Gozalishvili) #40706
  • [8fcb71a5ab] - build: update openssl config generator Dockerfile (Richard Lau) #41177
  • [3a9ffa86db] - build: use '<(python)' instead of 'python' (Cheng Zhao) #41146
  • [85f1537c28] - build: fix comment-labeled workflow (Mestery) #41176
  • [61c53a667a] - build: use gh cli in workflows file (Mestery) #40985
  • [1fc6fd66ff] - build: fix commit-queue-rebase functionality (Rich Trott) #41140
  • [831face7d1] - build: skip documentation generation if no ICU (Rich Trott) #41091
  • [c776c9236e] - build: re-enable V8 concurrent marking (Michaël Zasso) #41013
  • [2125449f89] - build: add --without-corepack (Jonah Snider) #41060
  • [6327685363] - build: fail early in test-macos.yml (Rich Trott) #41035
  • [ee4186b305] - build: add tools/doc to tools.yml updates (Rich Trott) #41036
  • [db30bc97d0] - build: update Actions versions (Mestery) #40987
  • [db9cef3c4f] - build: set persist-credentials: false on workflows (Rich Trott) #40972
  • [29739f813f] - build: add OpenSSL gyp artifacts to .gitignore (Luigi Pinca) #40967
  • [1b8baf0e4f] - build: remove legacy -J test.py option from Makefile/vcbuild (Rich Trott) #40945
  • [5c27ec8385] - build: ignore unrelated workflow changes in slow Actions tests (Rich Trott) #40928
  • [8957c9bd1c] - build,tools: automate enforcement of emeritus criteria (Rich Trott) #41155
  • [e924dc7982] - cluster: use linkedlist for round_robin_handle (twchn) #40615
  • [c757fa513e] - crypto: add missing null check (Michael Dawson) #40598
  • [35fe14454b] - deps: update archs files for quictls/openssl-3.0.1+quic (Richard Lau) #41177
  • [0b2103419f] - deps: upgrade openssl sources to quictls/openssl-3.0.1+quic (Richard Lau) #41177
  • [fae4945ab3] - deps: upgrade npm to 8.3.0 (npm team) #41127
  • [3a1d952e68] - deps: upgrade npm to 8.2.0 (npm team) #41065
  • [627b5bb718] - deps: update Acorn to v8.6.0 (Michaël Zasso) #40993
  • [a2fb12f9c6] - deps: patch V8 to 9.6.180.15 (Michaël Zasso) #40949
  • [93111e4662] - doc: fix closing parenthesis (AlphaDio) #41190
  • [f883bf3d12] - doc: add security steward on/offboarding steps (Michael Dawson) #41129
  • [1274a25b14] - doc: align module resolve algorithm with implementation (Qingyu Deng) #38837
  • [34c6c59014] - doc: update nodejs-sec managers (Michael Dawson) #41128
  • [db26bdb011] - doc: move style guide to findable location (Rich Trott) #41119
  • [4369c6d9f6] - doc: fix comments in test-fs-watch.js (jakub-g) #41046
  • [93f5bd34e9] - doc: document support building with Python 3.10 on Windows (Christian Clauss) #41098
  • [d8fa227c26] - doc: add note about pip being required (Piotr Rybak) #40669
  • [95691801f3] - doc: remove OpenJSF Slack nodejs from support doc (Rich Trott) #41108
  • [e3ac384d78] - doc: simplify major release preparation (Bethany Nicolle Griggs) #40816
  • [3406910040] - doc: clarify escaping for ES modules (notroid5) #41074
  • [668284b5a1] - doc: add @bnb as a collaborator (Tierney Cyren) #41100
  • [94d09113a2] - doc: add explicit declaration of fd with null val (Henadzi) #40704
  • [b353ded677] - doc: expand entries for isIP(), isIPv4(), and isIPv6() (Rich Trott) #41028
  • [f18aa14b1d] - doc: link to commit queue guide (Geoffrey Booth) #41030
  • [681edbe75f] - doc: specify that message.socket can be nulled (Luigi Pinca) #41014
  • [7c41f32f06] - doc: fix JSDoc in ESM loaders examples (Mestery) #40984
  • [61b2e2ef9e] - doc: remove legacy -J test.py option from BUILDING.md (Rich Trott) #40945
  • [c9b09d124e] - doc,lib,tools: align multiline comments (Rich Trott) #41109
  • [12023dff4b] - (SEMVER-MINOR) errors: add support for cause in aborterror (James M Snell) #41008
  • [b0b7943e8f] - (SEMVER-MINOR) esm: working mock test (Bradley Farias) #39240
  • [37dbc3b9e9] - (SEMVER-MINOR) events: propagate abortsignal reason in new AbortError ctor in events (James M Snell) #41008
  • [1b8d4e4867] - (SEMVER-MINOR) events: propagate weak option for kNewListener (James M Snell) #40899
  • [bbdcd0513b] - (SEMVER-MINOR) fs: accept URL as argument for fs.rm and fs.rmSync (Antoine du Hamel) #41132
  • [46108f8d50] - fs: fix error codes for fs.cp (Antoine du Hamel) #41106
  • [e25671cddb] - fs: fix length option being ignored during read() (Shinho Ahn) #40906
  • [6eda874be0] - (SEMVER-MINOR) fs: propagate abortsignal reason in new AbortSignal constructors (James M Snell) #41008
  • [70ed4ef248] - http: don't write empty data on req/res end() (Santiago Gimeno) #41116
  • [4b3bf7e818] - (SEMVER-MINOR) http2: propagate abortsignal reason in new AbortError constructor (James M Snell) #41008
  • [8d87303f76] - inspector: add missing initialization (Michael Dawson) #41022
  • [b191e66ddf] - lib: include return types in JSDoc (Rich Trott) #41130
  • [348707fca6] - (SEMVER-MINOR) lib: make AbortSignal cloneable/transferable (James M Snell) #41050
  • [4ba883d384] - (SEMVER-MINOR) lib: add abortSignal.throwIfAborted() (James M Snell) #40951
  • [cc3e430c11] - lib: use consistent types in JSDoc @returns (Rich Trott) #41089
  • [a1ed7f2810] - (SEMVER-MINOR) lib: propagate abortsignal reason in new AbortError constructor in blob (James M Snell) #41008
  • [1572db3e86] - lib: do not lazy load EOL in blob (Ruben Bridgewater) #41004
  • [62c4b4c85b] - (SEMVER-MINOR) lib: add AbortSignal.timeout (James M Snell) #40899
  • [f0d874342d] - lib,test,tools: use consistent JSDoc types (Rich Trott) #40989
  • [03e6771137] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #41154
  • [e26c187b85] - meta: move to emeritus automatically after 18 months (Rich Trott) #41155
  • [b89fb3ef0a] - meta: move silverwind to emeriti (Roman Reiss) #41171
  • [0fc148321f] - meta: update AUTHORS (Node.js GitHub Bot) #41144
  • [d6d1d6647c] - meta: update AUTHORS (Node.js GitHub Bot) #41088
  • [f30d6bcaff] - meta: move one or more TSC members to emeritus (Node.js GitHub Bot) #40908
  • [033a646d82] - meta: increase security policy response targets (Matteo Collina) #40968
  • [6b6e1d054e] - node-api,doc: document parms which can be optional (Michael Dawson) #41021
  • [93ea1666f6] - perf_hooks: use spec-compliant structuredClone (Michaël Zasso) #40904
  • [d8a2125900] - (SEMVER-MINOR) process: add getActiveResourcesInfo() (Darshan Sen) #40813
  • [67124ac63a] - (SEMVER-MINOR) readline: propagate signal.reason in awaitable question (James M Snell) #41008
  • [8fac878ff5] - readline: skip escaping characters again (Ruben Bridgewater) #41005
  • [d3de937782] - src: fix limit calculation (Michael Dawson) #41026
  • [6f0ec9835a] - src: use a higher limit in the NearHeapLimitCallback (Joyee Cheung) #41041
  • [90097ab891] - src,crypto: remove uses of AllocatedBuffer from crypto_sig (Darshan Sen) #40895
  • [b59c513c31] - stream: add isErrored helper (Robert Nagy) #41121
  • [1787bfab68] - stream: allow readable to end early without error (Robert Nagy) #40881
  • [01e8c15c8a] - (SEMVER-MINOR) stream: use cause options in AbortError constructors (James M Snell) #41008
  • [0e21c64ae9] - stream: remove whatwg streams experimental warning (James M Snell) #40971
  • [513305c7d7] - stream: cleanup eos (Robert Nagy) #40998
  • [da8baf4bbb] - test: do not load absolute path crypto engines twice (Richard Lau) #41177
  • [1f6a9c3e31] - test: skip ESLint tests if no Intl (Rich Trott) #41105
  • [ce656a80b5] - test: add missing JSDoc parameter name (Rich Trott) #41057
  • [fb8f2e9643] - test: deflake test-trace-atomics-wait (Luigi Pinca) #41018
  • [de1748aca4] - test: add auth option case for url.format (Hirotaka Tagawa / wafuwafu13) #40516
  • [943547a0eb] - Revert "test: skip different params test for OpenSSL 3.x" (Daniel Bevenius) #40640
  • [0caa3483d2] - (SEMVER-MINOR) timers: add experimental scheduler api (James M Snell) #40909
  • [e795547651] - (SEMVER-MINOR) timers: propagate signal.reason in awaitable timers (James M Snell) #41008
  • [a77cae1ef7] - tls: improve handling of shutdown (Jameson Nash) #36111
  • [db410e7d3e] - tools: update doc to [email protected] (Node.js GitHub Bot) #41149
  • [e3870f3f17] - tools: update lint-md-dependencies to [email protected] [email protected] (Node.js GitHub Bot) #41150
  • [6fc92bd191] - tools: enable jsdoc/require-returns-type ESLint rule (Rich Trott) #41130
  • [70e6fe860a] - tools: update ESLint to 8.4.1 (Rich Trott) #41114
  • [78894fa888] - tools: enable JSDoc check-alignment lint rule (Rich Trott) #41109
  • [40a773aa29] - tools: strip comments from lint-md rollup output (Rich Trott) #41092
  • [7b606cfef6] - tools: update highlight.js to 11.3.1 (Rich Trott) #41091
  • [52633a9e95] - tools: enable jsdoc/require-returns-check lint rule (Rich Trott) #41089
  • [dc0405e7fb] - tools: update ESLint to 8.4.0 (Luigi Pinca) #41085
  • [855f15d059] - tools: enable jsdoc/require-param-name lint rule (Rich Trott) #41057
  • [78265e095a] - tools: use jsdoc recommended rules (Rich Trott) #41057
  • [9cfdf15da6] - tools: rollback highlight.js (Richard Lau) #41078
  • [fe3e09bb4b] - tools: remove Babel from license-builder.sh (Rich Trott) #41049
  • [62e0aa9725] - tools: udpate packages in tools/doc (Rich Trott) #41036
  • [a959f4fa72] - tools: install and enable JSDoc linting in ESLint (Rich Trott) #41027
  • [661960e471] - tools: include JSDoc in ESLint updating tool (Rich Trott) #41027
  • [e2922714ee] - tools: ignore unrelated workflow changes in slow Actions tests (Antoine du Hamel) #40990
  • [6525226ff7] - tools: remove unneeded tool in update-eslint.sh (Rich Trott) #40995
  • [5400b7963d] - tools: consolidate ESLint dependencies (Rich Trott) #40995
  • [86d5af14bc] - tools: update ESLint update script to consolidate dependencies (Rich Trott) #40995
  • [8427099f66] - tools: run ESLint update to minimize diff on subsequent update (Rich Trott) #40995
  • [82daaa9914] - tools,test: make -J behavior default for test.py (Rich Trott) #40945
  • [db77780cb9] - url: detect hostname more reliably in url.parse() (Rich Trott) #41031
  • [66b5083c1e] - util: serialize falsy cause values while inspecting errors (Ruben Bridgewater) #41097
  • [09d29ca8d9] - util: make sure error causes of any type may be inspected (Ruben Bridgewater) #41097
  • [f5ff88b3cb] - (SEMVER-MINOR) util: pass through the inspect function to custom inspect functions (Ruben Bridgewater) #41019
  • [a0326f0941] - util: escape lone surrogate code points using .inspect() (Ruben Bridgewater) #41001
  • [91df200ad6] - (SEMVER-MINOR) util: add numericSeparator to util.inspect (Ruben Bridgewater) #41003
  • [da87413257] - (SEMVER-MINOR) util: always visualize cause property in errors during inspection (Ruben Bridgewater) #41002

Windows 32-bit Installer: https://nodejs.org/dist/v17.3.0/node-v17.3.0-x86.msi
Windows 64-bit Installer: https://nodejs.org/dist/v17.3.0/node-v17.3.0-x64.msi
Windows 32-bit Binary: https://nodejs.org/dist/v17.3.0/win-x86/node.exe
Windows 64-bit Binary: https://nodejs.org/dist/v17.3.0/win-x64/node.exe
macOS 64-bit Installer: https://nodejs.org/dist/v17.3.0/node-v17.3.0.pkg
macOS Apple Silicon 64-bit Binary: https://nodejs.org/dist/v17.3.0/node-v17.3.0-darwin-arm64.tar.gz
macOS Intel 64-bit Binary: https://nodejs.org/dist/v17.3.0/node-v17.3.0-darwin-x64.tar.gz
Linux 64-bit Binary: https://nodejs.org/dist/v17.3.0/node-v17.3.0-linux-x64.tar.xz
Linux PPC LE 64-bit Binary: https://nodejs.org/dist/v17.3.0/node-v17.3.0-linux-ppc64le.tar.xz
Linux s390x 64-bit Binary: https://nodejs.org/dist/v17.3.0/node-v17.3.0-linux-s390x.tar.xz
AIX 64-bit Binary: https://nodejs.org/dist/v17.3.0/node-v17.3.0-aix-ppc64.tar.gz
ARMv7 32-bit Binary: https://nodejs.org/dist/v17.3.0/node-v17.3.0-linux-armv7l.tar.xz
ARMv8 64-bit Binary: https://nodejs.org/dist/v17.3.0/node-v17.3.0-linux-arm64.tar.xz
Source Code: https://nodejs.org/dist/v17.3.0/node-v17.3.0.tar.gz
Other release files: https://nodejs.org/dist/v17.3.0/
Documentation: https://nodejs.org/docs/v17.3.0/api/

SHASUMS

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

5300264598a643445378a51bf1d62242281ae602045934bf6fcacf6f6ba3abda  node-v17.3.0-aix-ppc64.tar.gz
b504ba3628337f7ac2c67d04bf30e56082942345aa1a50e0e464f51df6662ff3  node-v17.3.0-darwin-arm64.tar.gz
8f19364dd1159ce4ae8cfb3414508ee9092b8d3cf428b13c0d2aec7ac406e1ba  node-v17.3.0-darwin-arm64.tar.xz
d4fa7d01c3b08cecdb71eee1da27a5e0e2d31bd25ad3bee1807df95811c2ce3f  node-v17.3.0-darwin-x64.tar.gz
eb231bd4ad5950ccb5572fc4bb099266a634d6788559424976c8e9fb7fc320d6  node-v17.3.0-darwin-x64.tar.xz
9cb2ac1e9a3e7df31269699e02dcc55069cd1f27fd0417650fb95acf8f3e7a22  node-v17.3.0-headers.tar.gz
b5f1f5bdb2405e626448100aa50879f859288eee4651a496270fc4c4486b28fc  node-v17.3.0-headers.tar.xz
6f236f47fc68fa535bd0f769d9e12767a6b5251875aea2632c227ca55d1ab7ae  node-v17.3.0-linux-arm64.tar.gz
ad298da8144635a7ae470b973bddca4270e5a3e5cb919991c367b6e4ea5aa5a9  node-v17.3.0-linux-arm64.tar.xz
f92c17fc61af2a47a9b9e42b8e795abfbe18a1fa4e51de52d7362cae74ad487d  node-v17.3.0-linux-armv7l.tar.gz
660e89b1cf388493a9c00e7720b4bfafa903db12d00481ddae9edf22e950b728  node-v17.3.0-linux-armv7l.tar.xz
7161e93479e3df1b18f2fb75b36ef75fd1cbdf2cc610262f510531ef731d0050  node-v17.3.0-linux-ppc64le.tar.gz
810b3e203bc1d450e543f7c945a136acb7e2f16152839e6f8cf87b4f1ee8c3bb  node-v17.3.0-linux-ppc64le.tar.xz
de1b0007f4d46e786f2583b7312e3262820e6535bc16b45da57de65a8472e824  node-v17.3.0-linux-s390x.tar.gz
10f1da9e679232797e273ca15c6205b86b438eccfceb56f41951af63239cdf76  node-v17.3.0-linux-s390x.tar.xz
479fb0b4b6405fb7240376187e2823cf384635a4998bdbaddc3ea826b63c8c74  node-v17.3.0-linux-x64.tar.gz
b54b4b7d0732f2dbad9c13f5b909411cde3cc9989bfdeb7557c400e4c93fe6ee  node-v17.3.0-linux-x64.tar.xz
f960b616eace93d171a0d15e67c62116aa3c6100eb6266046774cc478487b9d9  node-v17.3.0.pkg
2914a3f0dc02ec6046f81ff12e1fb1fcf2b346b6b50e2c944440fdd165efd3ff  node-v17.3.0.tar.gz
e4e4c4e64854698f2590144a177bcc7e7c0befb52020288fdae5c0da0d015d03  node-v17.3.0.tar.xz
8876df18c5327e495f6dc4e576c66885c85ec77438386921bc93589788178b18  node-v17.3.0-win-x64.7z
a7a1d01ca796aa48f3690f1637bf4677dab81cd8608c082e325ebf575d5f832f  node-v17.3.0-win-x64.zip
62c94ff583c9e2b267f839bd24893bb2a3ee090547658be003e0ba11047d593b  node-v17.3.0-win-x86.7z
8e766aca83e5a7d01faeb57121f4af4963726b0e8a3f70ff3eeb51493c61ba96  node-v17.3.0-win-x86.zip
a2480ad99c7d02a67c71cb462adbb4dad0a2c3884c7fea2ac2da543be18661a6  node-v17.3.0-x64.msi
5b3b8acff16964add6b24c408060430edf7c2060408568e4286f7dc758cf8cb6  node-v17.3.0-x86.msi
9f0b2a11ed3a956a773f4072e40c05645445cbd100d71c30737656159f0e5e42  win-x64/node.exe
281c2c43920b76ee23c32f110917b50b92977b15842dceada2ed84d7a29e8d34  win-x64/node.lib
484ab403a7743cf8e2d04e8e1cc0e1b419e48b601402e01c248a386549c847d8  win-x64/node_pdb.7z
074124c6ccbc5ceed67c0f7a4091d2e72fb236a6d1a27cb7aaca950e4215ccdc  win-x64/node_pdb.zip
1e4d4bdc1855e032af72080e3390a19d637a85058b52f94d7918b33f0c8ad0db  win-x86/node.exe
9d79fc5845cf0e8602ea59057639cf2b3731058eb9ada1b8c3bd52638732f4d7  win-x86/node.lib
59680a579e30520af180b9ea543ab854b485e287520b7c7b01abef3b1085eb8f  win-x86/node_pdb.7z
5b5a3f76e247c52c005757935f8360a7d4766134ff7fb858c858567b5785fee3  win-x86/node_pdb.zip
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEdPEmArbxxOkT+qN606iWE2Q7YgEFAmG9Gk4ACgkQ06iWE2Q7
YgHu3g//S2ilarvvMiSas8azMyr+5dozjMUHkJ+626SCpqBbCHvYjH1Iyg9kV+6p
L6itkD26o5xRVnhfYZvHqpkDLChp1vrn1P0AW10xSN/PHpnl4NM26zB4vt1vuM2K
RL4f82EhqXVbcPbs3lmHThFAUOHosrjswljYzsqd9EOpeoPT7MVP/CuKQyLqShr5
P/GKaYaG8BlRzUU89y3p65YHeirrveMYQHr2mHarhP5yxQ5Ql7CyvTnXrphXuOHA
ApsMDzNtIDszhtIA6/B1rSETdDFHw4pR4Ae29Ry7NqwTAjpYqSKBCn2/cGFxEfpv
/0IiGR/yrFcrA862rW50r50E6d6lTi6nKaR+RxAxXQPMc38mVvxIHf37kTfJ4m7K
3xZJ1Ic4g9kLk/Ma/nkrm+nOeN8IE2pOamXwhwUCqJVKsKpR0/ErSrbgVcVQ1lQM
9wb/6LZ9rDMk6oIJQ8kxOIpdCGBhwOzQ3wQGzcQTHaqRNUiKQGaJXrXpP5Racok9
7CNTPrAYgwmBVfLmvfdoeMOg/zGcsterRu1GbC8zhw6MZ5AfnqPIarjnxX+BoWCf
RerUtmYX97oIafgh4ICIthbX2N9my60NcES6s2MAVlicn6PnnIDFTEJmSta/1Z8s
H67yJn4KdYySQJFIB3kJ0PUutZyvoC4tAbVFf6F90TV5F/Hn5aE=
=mHZa
-----END PGP SIGNATURE-----

Last Updated
Dec 17, 2021
Reading Time
8 min read
Contribute
Edit this page
Table of Contents
  1. Notable changes
  2. OpenSSL-3.0.1
  3. Other Notable Changes
  4. Commits
  5. SHASUMS