Node.js 16

Node.js 16 16.20.2

Run JavaScript Everywhere

Download for Windows

About Node.js 16

Node.js® is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.

What's new in 16.20.2

This is a security release.
Notable Changes
The following CVEs are fixed in this release:
- CVE-2023-32002: Policies can be bypassed via Module._load (High)
- CVE-2023-32006: Policies can be bypassed by module.constructor.createRequire (Medium)
- CVE-2023-32559: Policies can be bypassed via process.binding (Medium)
- OpenSSL Security Releases
- OpenSSL security advisory 14th July.
- OpenSSL security advisory 19th July.
- OpenSSL security advisory 31st July
More detailed information on each of the vulnerabilities can be found in August 2023 Security Releases blog post.
Commits
- [40c3958a5a] - deps: update archs files for OpenSSL-1.1.1v (RafaelGSS) #49043
- [a9ac9da89a] - deps: fix openssl crypto clean (RafaelGSS) #49043
- [362d4c7494] - deps: upgrade openssl sources to OpenSSL_1_1_1v (RafaelGSS) #49043
- [d8ccfe9ad4] - policy: handle Module.constructor and main.extensions bypass (RafaelGSS) nodejs-private/node-private#445
- [242aaa0caa] - policy: disable process.binding() when enabled (Tobias Nießen) nodejs-private/node-private#459

Full release notes »

Technical details

PublisherNode.js Foundation
AuthorOpenJS Foundation
Version16.20.2
Release date2023-08-08
LicenseMIT
Installer typewix, zip
Architecturex86, x64
Package IDOpenJS.NodeJS.16
Admin rightsRequired
Install scopeAll users

Install Node.js 16 from the command line

Install with Windows Package Manager
winget install --id=OpenJS.NodeJS.16 -e
Update to the latest version
winget upgrade --id=OpenJS.NodeJS.16 -e
Uninstall
winget uninstall --id=OpenJS.NodeJS.16 -e
Silent install with the offline installer
msiexec /i "node-v16.20.2-x64.msi" /quiet /norestart
Uninstall the MSI package
msiexec /x {B574737B-3A23-4038-BBA2-DA4D608E1A9A} /quiet

Node.js 16 adds these commands to the command line: corepack, node, npm, npx.

codingcross-platformdevelopdevelopmentenvironmentjavascriptjsltsnodenpmprogrammingruntimev8

File types supported by Node.js 16

Node.js 16 can open or be associated with 3 file types:

.cjs.js.mjs

Node.js 16 version history

16.20.1 Jun 20, 2023

This is a security release.
Notable Changes
The following CVEs are fixed in this release:
- CVE-2023-30581: mainModule.proto Bypass Experimental Policy Mechanism (High)
- CVE-2023-30585: Privilege escalation via Malicious Registry Key manipulation during Node.js installer repair process (Medium)
- CVE-2023-30588: Process interuption due to invalid Public Key information in x509 certificates (Medium)
- CVE-2023-30589: HTTP Request Smuggling via Empty headers separated by CR (Medium)
- CVE-2023-30590: DiffieHellman does not generate keys after setting a private key (Medium)
- OpenSSL Security Releases
- OpenSSL security advisory 28th March.
- OpenSSL security advisory 20th April.
- OpenSSL security advisory 30th May
- c-ares vulnerabilities:
- GHSA-9g78-jv2r-p7vc
- GHSA-8r8p-23f3-64c2
- GHSA-54xr-f67r-4pc4
- GHSA-x6mf-cxr9-8q6v
More detailed information on each of the vulnerabilities can be found in June 2023 Security Releases blog post.
Commits
- [5a92ea7a3b] - crypto: handle cert with invalid SPKI gracefully (Tobias Nießen)
- [5df04e893a] - deps: set CARES_RANDOM_FILE for c-ares (Richard Lau) #48156
- [c171cbd124] - deps: update c-ares to 1.19.1 (RafaelGSS) #48115
- [155d3aac02] - deps: update archs files for OpenSSL-1.1.1u+quic (RafaelGSS) #48369
- [8d4c8f8ebe] - deps: upgrade openssl sources to OpenSSL_1_1_1u (RafaelGSS) #48369
- [1a5c9284eb] - doc,test: clarify behavior of DH generateKeys (Tobias Nießen) nodejs-private/node-private#426 …

16.20.0 Mar 28, 2023

Notable Changes
- deps:
- update undici to 5.20.0 (Node.js GitHub Bot) #46711
- update c-ares to 1.19.0 (Michaël Zasso) #46415
- upgrade npm to 8.19.4 (npm team) #46677
- update corepack to 0.17.0 (Node.js GitHub Bot) #46842
- (SEMVER-MINOR) src: add support for externally shared js builtins (Michael Dawson) #44376
Commits
- [de6dd67790] - crypto: avoid hang when no algorithm available (Richard Lau) #46237
- [4617512788] - crypto: ensure auth tag set for chacha20-poly1305 (Ben Noordhuis) #46185
- [24972164fc] - deps: update undici to 5.20.0 (Node.js GitHub Bot) #46711
- [85f88c6a8d] - deps: V8: cherry-pick 90be99fab31c (Michaël Zasso) #46646
- [b4ebe6d47b] - deps: update c-ares to 1.19.0 (Michaël Zasso) #46415
- [56cbc7fdda] - deps: V8: cherry-pick c2792e58035f (Jiawen Geng) #44961
- [7af9bdb31e] - deps: upgrade npm to 8.19.4 (npm team) #46677
- [962a7471b5] - deps: update corepack to 0.17.0 (Node.js GitHub Bot) #46842
- [748bc96e35] - deps: update corepack to 0.16.0 (Node.js GitHub Bot) #46710
- [a467782499] - deps: update corepack to 0.15.3 (Node.js GitHub Bot) #46037
- [1913b6763d] - deps: update corepack to 0.15.2 (Node.js GitHub Bot) #45635
- [809371a15f] - module: require.resolve.paths returns null with node schema (MURAKAMI Masahiko) #45147
- [086bb2f8d4] - Revert "src: let http2 streams end after session close" (Rich Trott) #46721
- [6a01d39120] - (SEMVER-MINOR) src: add support for externally shared js builtins (Michael Dawson) #44376 …

16.19.1 Feb 16, 2023

This is a security release.
Notable Changes
The following CVEs are fixed in this release:
- CVE-2023-23918: Node.js Permissions policies can be bypassed via process.mainModule (High)
- CVE-2023-23919: Node.js OpenSSL error handling issues in nodejs crypto library (Medium)
- CVE-2023-23920: Node.js insecure loading of ICU data through ICU_DATA environment variable (Low)
Fixed by an update to undici:
- CVE-2023-23936: Fetch API in Node.js did not protect against CRLF injection in host headers (Medium)
- See https://github.com/nodejs/undici/security/advisories/GHSA-5r9g-qh6m-jxff for more information.
- CVE-2023-24807: Regular Expression Denial of Service in Headers in Node.js fetch API (Low)
- See https://github.com/nodejs/undici/security/advisories/GHSA-r6ch-mqf9-qc9w for more information.
More detailed information on each of the vulnerabilities can be found in February 2023 Security Releases blog post.
This security release includes OpenSSL security updates as outlined in the recent
OpenSSL security advisory.
Commits
- [7fef050447] - build: build ICU with ICU_NO_USER_DATA_OVERRIDE (RafaelGSS) nodejs-private/node-private#374
- [b558e9f476] - crypto: clear OpenSSL error on invalid ca cert (RafaelGSS) nodejs-private/node-private#375
- [160adb7ffc] - crypto: clear OpenSSL error queue after calling X509_check_private_key() (Filip Skokan) #45495
- [d0ece30948] - crypto: clear OpenSSL error queue after calling X509_verify() (Takuro Sato) #45377 …

Other versions

  • 16.19.0
  • 16.18.1
  • 16.18.0
  • 16.17.1
  • 16.17.0
  • 16.16.0

Frequently asked questions

Is Node.js 16 free?

Yes. Node.js 16 is free and open-source software released under the MIT license.

What is the latest version of Node.js 16?

The latest version is 16.20.2, released on Aug 8, 2023.

Is it safe to download Node.js 16?

The download button links to the official installer published on nodejs.org, the same file Windows Package Manager installs. You can verify the downloaded file by comparing its SHA-256 checksum with 8f78f8cea29743f9bfd4544b9c01106929e62e5211f019dd1f0a4b02916683d2.

Which Windows versions does Node.js 16 support?

Node.js 16 runs on Windows and is available for 32-bit (x86), 64-bit (x64) systems.

How do I install Node.js 16 silently?

Run the offline installer with msiexec /i "node-v16.20.2-x64.msi" /quiet /norestart, or install it with Windows Package Manager: winget install --id=OpenJS.NodeJS.16 -e --silent.

How do I uninstall Node.js 16?

Open Settings › Apps › Installed apps, find Node.js 16 and select Uninstall. From the command line, run winget uninstall --id=OpenJS.NodeJS.16 -e.

What file types can Node.js 16 open?

Node.js 16 supports 3 file types, including .cjs, .js, .mjs.