---
date: '2026-06-23T23:12:41.150Z'
category: release
title: Node.js 24.18.0 (LTS)
layout: blog-post
author: Richard Lau
---

## 2026-06-23, Version 24.18.0 'Krypton' (LTS), @richardlau prepared by @sxa

### Notable Changes

- \[[`e07e7a31e1`](https://github.com/nodejs/node/commit/e07e7a31e1)] - **crypto**: update root certificates to NSS 3.123.1 (Node.js GitHub Bot) [#63527](https://github.com/nodejs/node/pull/63527)
- \[[`44c8ebcbd6`](https://github.com/nodejs/node/commit/44c8ebcbd6)] - **http**: avoid stream listeners on idle agent sockets (Matteo Collina) [#64004](https://github.com/nodejs/node/pull/64004)
- \[[`d3ef4122ee`](https://github.com/nodejs/node/commit/d3ef4122ee)] - **(SEMVER-MINOR)** **buffer**: increase Buffer.poolSize default to 64 KiB (Matteo Collina) [#63597](https://github.com/nodejs/node/pull/63597)
- \[[`bb2857b85a`](https://github.com/nodejs/node/commit/bb2857b85a)] - **(SEMVER-MINOR)** **crypto**: align key argument names in docs and error messages (Filip Skokan) [#62527](https://github.com/nodejs/node/pull/62527)
- \[[`b9d5e87880`](https://github.com/nodejs/node/commit/b9d5e87880)] - **(SEMVER-MINOR)** **crypto**: accept key data in crypto.diffieHellman() and cleanup DH jobs (Filip Skokan) [#62527](https://github.com/nodejs/node/pull/62527)
- \[[`ccd756d61e`](https://github.com/nodejs/node/commit/ccd756d61e)] - **(SEMVER-MINOR)** **crypto**: add TurboSHAKE and KangarooTwelve Web Cryptography algorithms (Filip Skokan) [#62183](https://github.com/nodejs/node/pull/62183)
- \[[`4c9251fc09`](https://github.com/nodejs/node/commit/4c9251fc09)] - **(SEMVER-MINOR)** **http**: add writeInformation to send arbitrary 1xx status codes (Tim Perry) [#63155](https://github.com/nodejs/node/pull/63155)
- \[[`8c989ec4a3`](https://github.com/nodejs/node/commit/8c989ec4a3)] - **(SEMVER-MINOR)** **inspector**: expose precise coverage start to JS runtime (sangwook) [#63079](https://github.com/nodejs/node/pull/63079)
- \[[`3f54c8ba32`](https://github.com/nodejs/node/commit/3f54c8ba32)] - _**Revert**_ "**stream**: noop pause/resume on destroyed streams" (Stewart X Addison) [#63834](https://github.com/nodejs/node/pull/63834)

### Commits

- \[[`d3ef4122ee`](https://github.com/nodejs/node/commit/d3ef4122ee)] - **(SEMVER-MINOR)** **buffer**: increase Buffer.poolSize default to 64 KiB (Matteo Collina) [#63597](https://github.com/nodejs/node/pull/63597)
- \[[`9ff36e40f0`](https://github.com/nodejs/node/commit/9ff36e40f0)] - **build**: add --enable-all-experimentals build flag (Paolo Insogna) [#62755](https://github.com/nodejs/node/pull/62755)
- \[[`7c22ee23aa`](https://github.com/nodejs/node/commit/7c22ee23aa)] - **build**: def `NODE_USE_NODE_CODE_CACHE` only used in node_mksnapshot (Chengzhong Wu) [#63588](https://github.com/nodejs/node/pull/63588)
- \[[`2551abdb4a`](https://github.com/nodejs/node/commit/2551abdb4a)] - **build,win**: enable x64 PGO (Stefan Stojanovic) [#62761](https://github.com/nodejs/node/pull/62761)
- \[[`e8a55ce9b1`](https://github.com/nodejs/node/commit/e8a55ce9b1)] - **crypto**: strengthen argument CHECKs in TurboSHAKE (Tobias Nießen) [#62763](https://github.com/nodejs/node/pull/62763)
- \[[`ae61cd68f3`](https://github.com/nodejs/node/commit/ae61cd68f3)] - **crypto**: harden WebCrypto against prototype pollution (Filip Skokan) [#63363](https://github.com/nodejs/node/pull/63363)
- \[[`3d05a1d396`](https://github.com/nodejs/node/commit/3d05a1d396)] - **crypto**: pass CryptoKey handles to KDF jobs (Filip Skokan) [#63363](https://github.com/nodejs/node/pull/63363)
- \[[`f9d10a3f6b`](https://github.com/nodejs/node/commit/f9d10a3f6b)] - **crypto**: remove async from WebCrypto methods (Filip Skokan) [#63363](https://github.com/nodejs/node/pull/63363)
- \[[`e431d93e9e`](https://github.com/nodejs/node/commit/e431d93e9e)] - **crypto**: add WebCrypto CryptoJob mode (Filip Skokan) [#63363](https://github.com/nodejs/node/pull/63363)
- \[[`56e2505e48`](https://github.com/nodejs/node/commit/56e2505e48)] - **crypto**: wire ML-DSA and ML-KEM for use when using BoringSSL (Filip Skokan) [#63255](https://github.com/nodejs/node/pull/63255)
- \[[`3bac77f2a8`](https://github.com/nodejs/node/commit/3bac77f2a8)] - **crypto**: wire ChaCha20-Poly1305 in Web Cryptography when using BoringSSL (Filip Skokan) [#63255](https://github.com/nodejs/node/pull/63255)
- \[[`1bff901b09`](https://github.com/nodejs/node/commit/1bff901b09)] - **crypto**: wire AES-KW in Web Cryptography when using BoringSSL (Filip Skokan) [#63255](https://github.com/nodejs/node/pull/63255)
- \[[`4433fca3df`](https://github.com/nodejs/node/commit/4433fca3df)] - **crypto**: harden CryptoKey algorithm slots (Filip Skokan) [#63111](https://github.com/nodejs/node/pull/63111)
- \[[`b5cf01217a`](https://github.com/nodejs/node/commit/b5cf01217a)] - **crypto**: harden KeyObject internal slots (Filip Skokan) [#63111](https://github.com/nodejs/node/pull/63111)
- \[[`ce84aef37d`](https://github.com/nodejs/node/commit/ce84aef37d)] - **crypto**: add guards and adjust tests for BoringSSL (Filip Skokan) [#62883](https://github.com/nodejs/node/pull/62883)
- \[[`26781689b0`](https://github.com/nodejs/node/commit/26781689b0)] - **crypto**: reject duplicate ML-KEM JWK key_ops (Filip Skokan) [#62905](https://github.com/nodejs/node/pull/62905)
- \[[`aeea8f4970`](https://github.com/nodejs/node/commit/aeea8f4970)] - **crypto**: add JWK support for ML-KEM and SLH-DSA key types (Filip Skokan) [#62706](https://github.com/nodejs/node/pull/62706)
- \[[`407cf91656`](https://github.com/nodejs/node/commit/407cf91656)] - **crypto**: guard against size_t overflow on experimental 32-bit arch (Filip Skokan) [#62626](https://github.com/nodejs/node/pull/62626)
- \[[`bb2857b85a`](https://github.com/nodejs/node/commit/bb2857b85a)] - **(SEMVER-MINOR)** **crypto**: align key argument names in docs and error messages (Filip Skokan) [#62527](https://github.com/nodejs/node/pull/62527)
- \[[`b9d5e87880`](https://github.com/nodejs/node/commit/b9d5e87880)] - **(SEMVER-MINOR)** **crypto**: accept key data in crypto.diffieHellman() and cleanup DH jobs (Filip Skokan) [#62527](https://github.com/nodejs/node/pull/62527)
- \[[`b46d52b283`](https://github.com/nodejs/node/commit/b46d52b283)] - **crypto**: unify asymmetric key import through KeyObjectHandle::Init (Filip Skokan) [#62499](https://github.com/nodejs/node/pull/62499)
- \[[`ccd756d61e`](https://github.com/nodejs/node/commit/ccd756d61e)] - **(SEMVER-MINOR)** **crypto**: add TurboSHAKE and KangarooTwelve Web Cryptography algorithms (Filip Skokan) [#62183](https://github.com/nodejs/node/pull/62183)
- \[[`e07e7a31e1`](https://github.com/nodejs/node/commit/e07e7a31e1)] - **crypto**: update root certificates to NSS 3.123.1 (Node.js GitHub Bot) [#63527](https://github.com/nodejs/node/pull/63527)
- \[[`61826df455`](https://github.com/nodejs/node/commit/61826df455)] - **crypto**: coerce -0 keylen to +0 in pbkdf2 and scrypt (Jordan Harband) [#63531](https://github.com/nodejs/node/pull/63531)
- \[[`16d2fd3c07`](https://github.com/nodejs/node/commit/16d2fd3c07)] - **crypto**: align verifyOneShot accepted types (Anshika Jain) [#63280](https://github.com/nodejs/node/pull/63280)
- \[[`3b8330deda`](https://github.com/nodejs/node/commit/3b8330deda)] - **crypto**: improve system certificate enumeration logic on macOS (Robo) [#62576](https://github.com/nodejs/node/pull/62576)
- \[[`141de35399`](https://github.com/nodejs/node/commit/141de35399)] - **debugger**: add --help to `node inspect` and improve docs (Joyee Cheung) [#63201](https://github.com/nodejs/node/pull/63201)
- \[[`b76bfcd4fa`](https://github.com/nodejs/node/commit/b76bfcd4fa)] - **deps**: upgrade npm to 11.16.0 (npm team) [#63602](https://github.com/nodejs/node/pull/63602)
- \[[`4ec142314c`](https://github.com/nodejs/node/commit/4ec142314c)] - **deps**: SQLite: cherry-pick b869ed6b067d623cb1383549f2a18aa35508385d (Junsu Han) [#63525](https://github.com/nodejs/node/pull/63525)
- \[[`19e8ce1c36`](https://github.com/nodejs/node/commit/19e8ce1c36)] - **deps**: upgrade npm to 11.15.0 (npm team) [#63463](https://github.com/nodejs/node/pull/63463)
- \[[`8a264260e2`](https://github.com/nodejs/node/commit/8a264260e2)] - **deps**: update sqlite to 3.53.1 (Node.js GitHub Bot) [#63217](https://github.com/nodejs/node/pull/63217)
- \[[`50c8ff3f94`](https://github.com/nodejs/node/commit/50c8ff3f94)] - **deps**: update simdjson to 4.6.4 (Node.js GitHub Bot) [#62811](https://github.com/nodejs/node/pull/62811)
- \[[`6e56f01c4b`](https://github.com/nodejs/node/commit/6e56f01c4b)] - **deps**: V8: cherry-pick 435a2cdf664c (Matthias Liedtke) [#63136](https://github.com/nodejs/node/pull/63136)
- \[[`3ba813b242`](https://github.com/nodejs/node/commit/3ba813b242)] - **deps**: cherry-pick libuv/libuv\@a43e543 (Ali Hassan) [#63222](https://github.com/nodejs/node/pull/63222)
- \[[`2390e3a5ac`](https://github.com/nodejs/node/commit/2390e3a5ac)] - **doc**: remove duplicated sentences in large-pull-requests.md (Joyee Cheung) [#63650](https://github.com/nodejs/node/pull/63650)
- \[[`52a1c18374`](https://github.com/nodejs/node/commit/52a1c18374)] - **doc**: update `git node land` instructions for security releases (Antoine du Hamel) [#63586](https://github.com/nodejs/node/pull/63586)
- \[[`3e6b4da037`](https://github.com/nodejs/node/commit/3e6b4da037)] - **doc**: drop --experimental from --permission (Rafael Gonzaga) [#63583](https://github.com/nodejs/node/pull/63583)
- \[[`84d05163b9`](https://github.com/nodejs/node/commit/84d05163b9)] - **doc**: explicitly ask for reproducible in JS (Rafael Gonzaga) [#63479](https://github.com/nodejs/node/pull/63479)
- \[[`7da2a4450e`](https://github.com/nodejs/node/commit/7da2a4450e)] - **doc**: fix URL postMessage example in worker_threads (Kit Dallege) [#62203](https://github.com/nodejs/node/pull/62203)
- \[[`3d79bd8b29`](https://github.com/nodejs/node/commit/3d79bd8b29)] - **doc**: clarify `filter` option of `sqlite.database.applyChangeset` (Antoine du Hamel) [#63515](https://github.com/nodejs/node/pull/63515)
- \[[`4f4174aace`](https://github.com/nodejs/node/commit/4f4174aace)] - **doc**: fix double spaces in ERR_TLS_INVALID_PROTOCOL_METHOD (Daijiro Wachi) [#63511](https://github.com/nodejs/node/pull/63511)
- \[[`388323ca4b`](https://github.com/nodejs/node/commit/388323ca4b)] - **doc**: fix double space in modules.md (Daijiro Wachi) [#63512](https://github.com/nodejs/node/pull/63512)
- \[[`5258ccc058`](https://github.com/nodejs/node/commit/5258ccc058)] - **doc**: fix "options" to "option" in tls.createServer (Daijiro Wachi) [#63453](https://github.com/nodejs/node/pull/63453)
- \[[`43e83e6507`](https://github.com/nodejs/node/commit/43e83e6507)] - **doc**: fix typo in deprecations (Daijiro Wachi) [#63434](https://github.com/nodejs/node/pull/63434)
- \[[`f05a61d54c`](https://github.com/nodejs/node/commit/f05a61d54c)] - **doc**: remove unsupported template type from v8.md (René) [#63410](https://github.com/nodejs/node/pull/63410)
- \[[`c39d5fc820`](https://github.com/nodejs/node/commit/c39d5fc820)] - **doc**: fix article usage before vowel-sound acronyms (joao-oliveira-softtor) [#62696](https://github.com/nodejs/node/pull/62696)
- \[[`398261f911`](https://github.com/nodejs/node/commit/398261f911)] - **doc**: remove the bi-monthly contributor spotlight section (Claudio Wunder) [#62734](https://github.com/nodejs/node/pull/62734)
- \[[`fd9e14c405`](https://github.com/nodejs/node/commit/fd9e14c405)] - **doc**: update http2's `push` and `trailers` events with `rawHeaders` param (YuSheng Chen) [#63259](https://github.com/nodejs/node/pull/63259)
- \[[`b943ce6933`](https://github.com/nodejs/node/commit/b943ce6933)] - **doc**: remove inactive members from Triagers list (Antoine du Hamel) [#63329](https://github.com/nodejs/node/pull/63329)
- \[[`4b9cdfc022`](https://github.com/nodejs/node/commit/4b9cdfc022)] - **doc**: reference correct function in Module docs (Robin Malfait) [#63247](https://github.com/nodejs/node/pull/63247)
- \[[`bed84b6df2`](https://github.com/nodejs/node/commit/bed84b6df2)] - **doc**: replace Visual Studio 2022 Evergreen version reference with 17.14 (Mike McCready) [#63211](https://github.com/nodejs/node/pull/63211)
- \[[`32ea70569b`](https://github.com/nodejs/node/commit/32ea70569b)] - **doc**: recommend explicitly Tier 1 or 2 for production applications (Mike McCready) [#63187](https://github.com/nodejs/node/pull/63187)
- \[[`4627bcfd82`](https://github.com/nodejs/node/commit/4627bcfd82)] - **doc**: run license-builder (github-actions\[bot]) [#63232](https://github.com/nodejs/node/pull/63232)
- \[[`28eba71845`](https://github.com/nodejs/node/commit/28eba71845)] - **doc**: add large pull requests contributing guide (Matteo Collina) [#62829](https://github.com/nodejs/node/pull/62829)
- \[[`2648efd438`](https://github.com/nodejs/node/commit/2648efd438)] - **doc**: remove unnecessary `<!-- eslint-` magic comments (Antoine du Hamel) [#63200](https://github.com/nodejs/node/pull/63200)
- \[[`a95fc1f8fc`](https://github.com/nodejs/node/commit/a95fc1f8fc)] - **doc**: clarify SEA platform support excludes darwin-x64 (MJSHANG) [#63181](https://github.com/nodejs/node/pull/63181)
- \[[`aaef29e2e1`](https://github.com/nodejs/node/commit/aaef29e2e1)] - **doc**: update release steps when post-release fails (Rafael Gonzaga) [#63131](https://github.com/nodejs/node/pull/63131)
- \[[`7d81419cf2`](https://github.com/nodejs/node/commit/7d81419cf2)] - **doc**: add Hmac.digest() documentation-only deprecation (DEP0206) (Anshika Jain) [#63121](https://github.com/nodejs/node/pull/63121)
- \[[`ececd80d81`](https://github.com/nodejs/node/commit/ececd80d81)] - **doc**: document the latest-vX.x schema (Marco Ippolito) [#63033](https://github.com/nodejs/node/pull/63033)
- \[[`27c1c1d842`](https://github.com/nodejs/node/commit/27c1c1d842)] - **doc**: remove list of versions in `BUILDING.md` (Antoine du Hamel) [#63113](https://github.com/nodejs/node/pull/63113)
- \[[`e369886a65`](https://github.com/nodejs/node/commit/e369886a65)] - **doc,sqlite**: document entryPoint argument for loadExtension (Edy Silva) [#63152](https://github.com/nodejs/node/pull/63152)
- \[[`e4e5137cbd`](https://github.com/nodejs/node/commit/e4e5137cbd)] - **errors**: handle V8 warnings in DisallowJavascriptExecutionScope (Divyanshu Sharma) [#63491](https://github.com/nodejs/node/pull/63491)
- \[[`6d1f6048d2`](https://github.com/nodejs/node/commit/6d1f6048d2)] - **fs**: make `Date` properties on `Stats` enumerable (LiviaMedeiros) [#63328](https://github.com/nodejs/node/pull/63328)
- \[[`44c8ebcbd6`](https://github.com/nodejs/node/commit/44c8ebcbd6)] - **http**: avoid stream listeners on idle agent sockets (Matteo Collina) [#64004](https://github.com/nodejs/node/pull/64004)
- \[[`4c9251fc09`](https://github.com/nodejs/node/commit/4c9251fc09)] - **(SEMVER-MINOR)** **http**: add writeInformation to send arbitrary 1xx status codes (Tim Perry) [#63155](https://github.com/nodejs/node/pull/63155)
- \[[`39f61fb06c`](https://github.com/nodejs/node/commit/39f61fb06c)] - **http2**: emit session close before stream close (Matteo Collina) [#63414](https://github.com/nodejs/node/pull/63414)
- \[[`8a8f2127d1`](https://github.com/nodejs/node/commit/8a8f2127d1)] - **http2**: validate non-link headers in writeEarlyHints (Matteo Collina) [#62017](https://github.com/nodejs/node/pull/62017)
- \[[`8c989ec4a3`](https://github.com/nodejs/node/commit/8c989ec4a3)] - **(SEMVER-MINOR)** **inspector**: expose precise coverage start to JS runtime (sangwook) [#63079](https://github.com/nodejs/node/pull/63079)
- \[[`c05f38229b`](https://github.com/nodejs/node/commit/c05f38229b)] - **lib**: cleanup stateless diffiehellman key handling (Filip Skokan) [#62645](https://github.com/nodejs/node/pull/62645)
- \[[`1c16b45d35`](https://github.com/nodejs/node/commit/1c16b45d35)] - **lib**: refactor internal webidl converters (Filip Skokan) [#62979](https://github.com/nodejs/node/pull/62979)
- \[[`02f35d6dce`](https://github.com/nodejs/node/commit/02f35d6dce)] - **lib**: define `kEnumerableProperty` atomically (Antoine du Hamel) [#63609](https://github.com/nodejs/node/pull/63609)
- \[[`12c51547ba`](https://github.com/nodejs/node/commit/12c51547ba)] - **lib**: fix typos in esm loader comments (RonGamzu) [#63465](https://github.com/nodejs/node/pull/63465)
- \[[`9b03b84262`](https://github.com/nodejs/node/commit/9b03b84262)] - **lib**: fix typo idenity => identity (Daijiro Wachi) [#63112](https://github.com/nodejs/node/pull/63112)
- \[[`a84e6b0567`](https://github.com/nodejs/node/commit/a84e6b0567)] - **lib**: fixes validator message (Daijiro Wachi) [#62823](https://github.com/nodejs/node/pull/62823)
- \[[`11734166a8`](https://github.com/nodejs/node/commit/11734166a8)] - **lib**: narrow ReadableStreamBYOBRequest.view return type to Uint8Array (RoomWithOutRoof) [#63017](https://github.com/nodejs/node/pull/63017)
- \[[`7cead61d21`](https://github.com/nodejs/node/commit/7cead61d21)] - **meta**: flip mcollina emails in .mailmap (Matteo Collina) [#63621](https://github.com/nodejs/node/pull/63621)
- \[[`a08cfcfd35`](https://github.com/nodejs/node/commit/a08cfcfd35)] - **meta**: label "source maps" PRs (Chengzhong Wu) [#63591](https://github.com/nodejs/node/pull/63591)
- \[[`d56e8d2512`](https://github.com/nodejs/node/commit/d56e8d2512)] - **meta**: add `vfs` subsystem label (René) [#62331](https://github.com/nodejs/node/pull/62331)
- \[[`6201cfe488`](https://github.com/nodejs/node/commit/6201cfe488)] - **meta**: skip scheduled workflows on forks (Jamie Magee) [#63565](https://github.com/nodejs/node/pull/63565)
- \[[`f095e2bd31`](https://github.com/nodejs/node/commit/f095e2bd31)] - **meta**: add additional gitignore entries (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267)
- \[[`1ea52c444c`](https://github.com/nodejs/node/commit/1ea52c444c)] - **meta**: move one or more collaborators to emeritus (Node.js GitHub Bot) [#63402](https://github.com/nodejs/node/pull/63402)
- \[[`b1b2327611`](https://github.com/nodejs/node/commit/b1b2327611)] - **meta**: move one or more collaborators to emeritus (Node.js GitHub Bot) [#63235](https://github.com/nodejs/node/pull/63235)
- \[[`7d88e130a9`](https://github.com/nodejs/node/commit/7d88e130a9)] - **meta**: ignore AI assistants files (Matteo Collina) [#62612](https://github.com/nodejs/node/pull/62612)
- \[[`a53b51df38`](https://github.com/nodejs/node/commit/a53b51df38)] - **module**: load ESM helpers eagerly in the snapshot (Joyee Cheung) [#63550](https://github.com/nodejs/node/pull/63550)
- \[[`69df688fff`](https://github.com/nodejs/node/commit/69df688fff)] - **module**: fix sync hook short-circuit in require() in imported CJS (Joyee Cheung) [#62920](https://github.com/nodejs/node/pull/62920)
- \[[`75d9a4ed47`](https://github.com/nodejs/node/commit/75d9a4ed47)] - **node-api**: support SharedArrayBuffer in napi_create_typedarray (Yilong Li) [#62710](https://github.com/nodejs/node/pull/62710)
- \[[`c20aa4c47b`](https://github.com/nodejs/node/commit/c20aa4c47b)] - **quic**: add reusePort option to QuicEndpoint (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267)
- \[[`26a30d8a7f`](https://github.com/nodejs/node/commit/26a30d8a7f)] - **quic**: implement rate limiting for version nego and immediate close (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267)
- \[[`0b534b5770`](https://github.com/nodejs/node/commit/0b534b5770)] - **quic**: fixup linting issue after other changes (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267)
- \[[`4b367cbe09`](https://github.com/nodejs/node/commit/4b367cbe09)] - **quic**: remove unused binding variable in session.cc (James M Snell) [#63177](https://github.com/nodejs/node/pull/63177)
- \[[`2574bef5a6`](https://github.com/nodejs/node/commit/2574bef5a6)] - **repl**: fix dedup comparing normalized line against raw history (Daijiro Wachi) [#62886](https://github.com/nodejs/node/pull/62886)
- \[[`30e71c7e49`](https://github.com/nodejs/node/commit/30e71c7e49)] - **sqlite**: keep source database alive during backup (Matteo Collina) [#62673](https://github.com/nodejs/node/pull/62673)
- \[[`677ca7e76c`](https://github.com/nodejs/node/commit/677ca7e76c)] - **src**: simplify OpenSSL feature gates (Filip Skokan) [#63255](https://github.com/nodejs/node/pull/63255)
- \[[`c863c75c39`](https://github.com/nodejs/node/commit/c863c75c39)] - **src**: add BoringSSL EVP enumeration fallback (Filip Skokan) [#63206](https://github.com/nodejs/node/pull/63206)
- \[[`f6b2466921`](https://github.com/nodejs/node/commit/f6b2466921)] - **src**: decouple KeyObject and CryptoKey and move CryptoKey to src (Filip Skokan) [#62924](https://github.com/nodejs/node/pull/62924)
- \[[`92d4f07dd2`](https://github.com/nodejs/node/commit/92d4f07dd2)] - **src**: remove license headers for new node_profiling files (Chengzhong Wu) [#63066](https://github.com/nodejs/node/pull/63066)
- \[[`8ac5d771c8`](https://github.com/nodejs/node/commit/8ac5d771c8)] - **src**: split profiling helpers from util (Ilyas Shabi) [#63008](https://github.com/nodejs/node/pull/63008)
- \[[`85d1639495`](https://github.com/nodejs/node/commit/85d1639495)] - **src**: remove TOCTOU race condition when encoding SAB-backed `Buffer`s (Antoine du Hamel) [#63517](https://github.com/nodejs/node/pull/63517)
- \[[`9473c5f05c`](https://github.com/nodejs/node/commit/9473c5f05c)] - **src**: skip duplicate UTF-8 validation in TextDecoder fatal path (Mert Can Altin) [#63231](https://github.com/nodejs/node/pull/63231)
- \[[`f35c91ee68`](https://github.com/nodejs/node/commit/f35c91ee68)] - **src**: improve token return value check (James M Snell) [#63483](https://github.com/nodejs/node/pull/63483)
- \[[`26f677c1c5`](https://github.com/nodejs/node/commit/26f677c1c5)] - **src**: expose `node::RegisterContext` to make a node managed context (Chengzhong Wu) [#62322](https://github.com/nodejs/node/pull/62322)
- \[[`275cf909b6`](https://github.com/nodejs/node/commit/275cf909b6)] - **src,sqlite**: only pass `xFilter` when user provided a callback (Antoine du Hamel) [#63516](https://github.com/nodejs/node/pull/63516)
- \[[`287e02303f`](https://github.com/nodejs/node/commit/287e02303f)] - **src,sqlite**: remove dead code (Edy Silva) [#63204](https://github.com/nodejs/node/pull/63204)
- \[[`58fa2ee189`](https://github.com/nodejs/node/commit/58fa2ee189)] - **stream**: switch to internal `sleep` binding (Antoine du Hamel) [#63611](https://github.com/nodejs/node/pull/63611)
- \[[`f954ab3f1a`](https://github.com/nodejs/node/commit/f954ab3f1a)] - **stream**: use data listener for compose forwarding (Trivikram Kamat) [#63593](https://github.com/nodejs/node/pull/63593)
- \[[`dc57173003`](https://github.com/nodejs/node/commit/dc57173003)] - **stream**: fix Writable.toWeb() hang on synchronous drain (sangwook) [#61197](https://github.com/nodejs/node/pull/61197)
- \[[`3f54c8ba32`](https://github.com/nodejs/node/commit/3f54c8ba32)] - _**Revert**_ "**stream**: noop pause/resume on destroyed streams" (Stewart X Addison) [#63834](https://github.com/nodejs/node/pull/63834)
- \[[`cee279c5d6`](https://github.com/nodejs/node/commit/cee279c5d6)] - **stream**: remove unnecessary check (Antoine du Hamel) [#63030](https://github.com/nodejs/node/pull/63030)
- \[[`61b20f60a3`](https://github.com/nodejs/node/commit/61b20f60a3)] - **test**: update tls/crypto behaviour expectations when using BoringSSL (Filip Skokan) [#63161](https://github.com/nodejs/node/pull/63161)
- \[[`a835363808`](https://github.com/nodejs/node/commit/a835363808)] - **test**: update WPT for WebCryptoAPI to 97bbc7247a (Node.js GitHub Bot) [#63417](https://github.com/nodejs/node/pull/63417)
- \[[`a00297480b`](https://github.com/nodejs/node/commit/a00297480b)] - **test**: update WPT resources, interfaces and WebCryptoAPI (Node.js GitHub Bot) [#62389](https://github.com/nodejs/node/pull/62389)
- \[[`5a95a2b055`](https://github.com/nodejs/node/commit/5a95a2b055)] - **test**: shorten path in net pipe connect errors (Matteo Collina) [#63405](https://github.com/nodejs/node/pull/63405)
- \[[`5e8ff22d8f`](https://github.com/nodejs/node/commit/5e8ff22d8f)] - **test**: remove test-node-output-v8-warning (Joyee Cheung) [#63469](https://github.com/nodejs/node/pull/63469)
- \[[`ee15380950`](https://github.com/nodejs/node/commit/ee15380950)] - **test**: update test426-fixtures to 9b9e225b5a63139e9a95cdd1bf874a8f0b9d131 (Node.js GitHub Bot) [#63373](https://github.com/nodejs/node/pull/63373)
- \[[`9e063d9bea`](https://github.com/nodejs/node/commit/9e063d9bea)] - **test**: update WPT for url to e4a4672e9e (Node.js GitHub Bot) [#63372](https://github.com/nodejs/node/pull/63372)
- \[[`503bee4b43`](https://github.com/nodejs/node/commit/503bee4b43)] - **test**: deflake async-hooks statwatcher test (Trivikram Kamat) [#63396](https://github.com/nodejs/node/pull/63396)
- \[[`cccc7c32d8`](https://github.com/nodejs/node/commit/cccc7c32d8)] - **test**: avoid test_runner watch restart in spec snapshot (Trivikram Kamat) [#63392](https://github.com/nodejs/node/pull/63392)
- \[[`c89489258c`](https://github.com/nodejs/node/commit/c89489258c)] - **test**: reduce watch mode restart flakiness (Trivikram Kamat) [#63390](https://github.com/nodejs/node/pull/63390)
- \[[`e4d5e2578e`](https://github.com/nodejs/node/commit/e4d5e2578e)] - **test**: isolate rerun-failures state file under tmpdir (Chemi Atlow) [#63449](https://github.com/nodejs/node/pull/63449)
- \[[`362644a9ba`](https://github.com/nodejs/node/commit/362644a9ba)] - **test**: wait for ok before initial break after restart (Yuya Inoue) [#62807](https://github.com/nodejs/node/pull/62807)
- \[[`c4058d0e05`](https://github.com/nodejs/node/commit/c4058d0e05)] - **test**: disable Maglev in near-heap-limit worker test (Trivikram Kamat) [#63398](https://github.com/nodejs/node/pull/63398)
- \[[`214da630a7`](https://github.com/nodejs/node/commit/214da630a7)] - **test**: deflake connection refused proxy tests (Trivikram Kamat) [#63395](https://github.com/nodejs/node/pull/63395)
- \[[`1d61a29876`](https://github.com/nodejs/node/commit/1d61a29876)] - **test**: avoid repeated writes in watch helper (Trivikram Kamat) [#63386](https://github.com/nodejs/node/pull/63386)
- \[[`2004e25387`](https://github.com/nodejs/node/commit/2004e25387)] - **test**: deflake watch mode worker test (Trivikram Kamat) [#63384](https://github.com/nodejs/node/pull/63384)
- \[[`d691cccfc1`](https://github.com/nodejs/node/commit/d691cccfc1)] - **test**: relax test-memory-usage arrayBuffers check (inoway46) [#63244](https://github.com/nodejs/node/pull/63244)
- \[[`0ff6bf853c`](https://github.com/nodejs/node/commit/0ff6bf853c)] - **test**: reduce flakiness of `different-registry-per-thread` (Antoine du Hamel) [#63244](https://github.com/nodejs/node/pull/63244)
- \[[`d9f4e8e503`](https://github.com/nodejs/node/commit/d9f4e8e503)] - **test**: fix flaky test-watch-mode-inspect timeout (Matteo Collina) [#63361](https://github.com/nodejs/node/pull/63361)
- \[[`6d7cd50328`](https://github.com/nodejs/node/commit/6d7cd50328)] - **test**: relax min assertion in test-performance-eventloopdelay (Marco) [#63100](https://github.com/nodejs/node/pull/63100)
- \[[`9dafe1d2d8`](https://github.com/nodejs/node/commit/9dafe1d2d8)] - **test**: avoid flaky restart sync in debugger exceptions test (Yuya Inoue) [#62055](https://github.com/nodejs/node/pull/62055)
- \[[`989b2de973`](https://github.com/nodejs/node/commit/989b2de973)] - **test**: avoid initial-break wait in restart-message (inoway46) [#62060](https://github.com/nodejs/node/pull/62060)
- \[[`a072a25ee7`](https://github.com/nodejs/node/commit/a072a25ee7)] - **test**: move FFI tests to `NATIVE_SUITES` (Antoine du Hamel) [#63165](https://github.com/nodejs/node/pull/63165)
- \[[`64efbfd878`](https://github.com/nodejs/node/commit/64efbfd878)] - **test**: use ERM to destroy sqlite database handles after tests (René) [#63076](https://github.com/nodejs/node/pull/63076)
- \[[`7dee66cd94`](https://github.com/nodejs/node/commit/7dee66cd94)] - **test_runner**: dont buffer unordered events in process isolation mode (Moshe Atlow) [#63432](https://github.com/nodejs/node/pull/63432)
- \[[`d257eec1e3`](https://github.com/nodejs/node/commit/d257eec1e3)] - **test_runner**: fix --test-rerun-failures swallowing failures on retry (Chemi Atlow) [#63431](https://github.com/nodejs/node/pull/63431)
- \[[`288c320e2f`](https://github.com/nodejs/node/commit/288c320e2f)] - **test_runner**: show replayed-from-attempt hint in spec reporter (Moshe Atlow) [#63429](https://github.com/nodejs/node/pull/63429)
- \[[`904bdf5bb4`](https://github.com/nodejs/node/commit/904bdf5bb4)] - **test_runner**: preserve run duration when using test-rerun (Moshe Atlow) [#63429](https://github.com/nodejs/node/pull/63429)
- \[[`df183d7bfa`](https://github.com/nodejs/node/commit/df183d7bfa)] - **test_runner**: avoid hanging on incomplete v8 frames (Ali Hassan) [#62704](https://github.com/nodejs/node/pull/62704)
- \[[`ec86c69726`](https://github.com/nodejs/node/commit/ec86c69726)] - **test_runner**: fix diagnostics channel context tracking (Moshe Atlow) [#63283](https://github.com/nodejs/node/pull/63283)
- \[[`94e5f63b83`](https://github.com/nodejs/node/commit/94e5f63b83)] - **tls**: add unsupported renegotiation error (Filip Skokan) [#63161](https://github.com/nodejs/node/pull/63161)
- \[[`06d308fb61`](https://github.com/nodejs/node/commit/06d308fb61)] - **tools**: prevent lib code from reading KeyObject and CryptoKey accessors (Filip Skokan) [#63111](https://github.com/nodejs/node/pull/63111)
- \[[`2e4a0d0c91`](https://github.com/nodejs/node/commit/2e4a0d0c91)] - **tools**: bump brace-expansion from 5.0.5 to 5.0.6 in /tools/eslint (dependabot\[bot]) [#63415](https://github.com/nodejs/node/pull/63415)
- \[[`4c9666b366`](https://github.com/nodejs/node/commit/4c9666b366)] - **tools**: skip commit-lint on backport pull requests (Marco) [#63378](https://github.com/nodejs/node/pull/63378)
- \[[`67d0c490a8`](https://github.com/nodejs/node/commit/67d0c490a8)] - **tools**: fix skip of `test-internet` on forks (Antoine du Hamel) [#63492](https://github.com/nodejs/node/pull/63492)
- \[[`02f73c7cac`](https://github.com/nodejs/node/commit/02f73c7cac)] - **tools**: bump the eslint group in /tools/eslint with 4 updates (dependabot\[bot]) [#63075](https://github.com/nodejs/node/pull/63075)
- \[[`5d016d3241`](https://github.com/nodejs/node/commit/5d016d3241)] - **tools**: update gyp-next to 0.22.2 (Node.js GitHub Bot) [#63374](https://github.com/nodejs/node/pull/63374)
- \[[`55af0f0edb`](https://github.com/nodejs/node/commit/55af0f0edb)] - **tools**: fix test426 updater (Antoine du Hamel) [#63271](https://github.com/nodejs/node/pull/63271)
- \[[`d8475e167a`](https://github.com/nodejs/node/commit/d8475e167a)] - **tools**: use different branch for tool updates on staging branches (Antoine du Hamel) [#63110](https://github.com/nodejs/node/pull/63110)
- \[[`c605df9e50`](https://github.com/nodejs/node/commit/c605df9e50)] - **util**: remove unused functions (Antoine du Hamel) [#63612](https://github.com/nodejs/node/pull/63612)
- \[[`fe4540ebdb`](https://github.com/nodejs/node/commit/fe4540ebdb)] - **util**: create hex style cache and fast path (Guilherme Araújo) [#62999](https://github.com/nodejs/node/pull/62999)

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

### SHASUMS

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

6463a23739f6b2300ebec5ccd60275e138e3858fc1afc6e8f9bc4e4f6a4b76fa  node-v24.18.0-aix-ppc64.tar.gz
f6e4a38e2d1f27d7e106b22c070ca5c2d653abfc38c6bea42d6c9358499391e2  node-v24.18.0-arm64.msi
e1a97e14c99c803e96c7339403282ea05a499c32f8d83defe9ef5ec66f979ed1  node-v24.18.0-darwin-arm64.tar.gz
4477b9f78efb77744cf5eb57a0e9594dba66466b38b4e93fa9f35cb907a095a6  node-v24.18.0-darwin-arm64.tar.xz
dfd0dbd3e721503434df7b7205e719f61b3a3a31b2bcf9729b8b91fea240f080  node-v24.18.0-darwin-x64.tar.gz
4a3b6bc81542154430825128d9a279e8b364e8d90581544e506ef7579fd1ab6f  node-v24.18.0-darwin-x64.tar.xz
6c7d41d83c3481d2301115b8ce4a44b7d4fbfa52859b1aac14f445d460137887  node-v24.18.0-headers.tar.gz
694c4868c187d4a435a86d617346e2c81676c30a9bbf6fc65cce8eb50038dcaf  node-v24.18.0-headers.tar.xz
6b4484c2190274175df9aa8f28e2d758a819cb1c1fe6ab481e2f95b463ab8508  node-v24.18.0-linux-arm64.tar.gz
58c9520501f6ae2b52d5b210444e24b9d0c029a58c5011b797bc1fe7105886f6  node-v24.18.0-linux-arm64.tar.xz
fe1338972f79283c6bc21e61dbf4576bbe8c05aded2999d41c8643ad30265142  node-v24.18.0-linux-ppc64le.tar.gz
9717e491a75590c304d17fc191179c9613907b0fddfce22106995d612f23953f  node-v24.18.0-linux-ppc64le.tar.xz
371ebc13945fc169493e752f2ddafafab6ecd8ccb451bcff46e09f69c5dd8c7a  node-v24.18.0-linux-s390x.tar.gz
25600dc7faa8881460acf909f7c3644c554f65a6f4d8c88827b005861b682559  node-v24.18.0-linux-s390x.tar.xz
783130984963db7ba9cbd01089eaf2c2efb055c7c1693c943174b967b3050cb8  node-v24.18.0-linux-x64.tar.gz
55aa7153f9d88f28d765fcdad5ae6945b5c0f98a36881703817e4c450fa76742  node-v24.18.0-linux-x64.tar.xz
e5a6701100066156d69da48878e4b95986733b0688e0b83afbe1093778e3fffd  node-v24.18.0.pkg
c8348067b41d8739ec69fd4da615cd8995ad6a76eb53e84a7fa7291c8a477eb7  node-v24.18.0.tar.gz
e94afde24db08e0c564ee7110a2d5aab51ee0059382c9fd8233c54eec47b28f9  node-v24.18.0.tar.xz
f9e1f5c62902ae2dab965f073d020bfa7275327d0f4192aeebbfd47986a0110a  node-v24.18.0-win-arm64.7z
f274669adb93b1fd0fbf8f21fd078609e9dcc84333d4f2718d2dde3f9a161a01  node-v24.18.0-win-arm64.zip
279e945ae581b644def8b36f0df1ee67fe7ef146515be73d227e94d3b008592c  node-v24.18.0-win-x64.7z
0ae68406b42d7725661da979b1403ec9926da205c6770827f33aac9d8f26e821  node-v24.18.0-win-x64.zip
e30cd4ca15529583afe0efc978f1ae3ab3a93c2400c222d0752d17900552ebb3  node-v24.18.0-x64.msi
c7225670c3f477778e18c43a55867f7a0d76468221245e5981ab80eb953c8102  win-arm64/node.exe
7da03c5111815b69bbe63ffd2e51b28cd69eec9f545b7ccb8756efffdbb88dc2  win-arm64/node.lib
17a0831870967a909184d2039a3810d3ab947aca0868f566ad997014688d6246  win-arm64/node_pdb.7z
4e1972cf6769b49bb719179c6b976d33c828bf54c6d8f743801c1172d3f3ed0e  win-arm64/node_pdb.zip
9a4eb5f1c29c6a2e93852ead46b999e284a6a5ca8bab4d4e241d587d025a52de  win-x64/node.exe
589684168a73547ca47cd22d76a4e465ef561abe89fb1b2b23fe35bbe857d505  win-x64/node.lib
bf706cc837fe75d3a7c857ea45b8e11bf080c076d321e448edf466ac35eb4308  win-x64/node_pdb.7z
fe2510a54825d0a60c468fdd6bbff096cb3a5d0bca1c75188ca5d90c064fd68b  win-x64/node_pdb.zip
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEyC+jrhy+3Gvka5NgxDzsRcF6uTwFAmo7Ec4ACgkQxDzsRcF6
uTyBEg/+Iyn5ri8t2VopA6+0p3/bFj99gVJr0VyP6KRZrddPzPyHNVuhPYDgMyAX
xhh9nkWIn8uTweJQxr/cRpyajs8pbzEBNlRppCwtMLn1qrx3MnY8Kc2+9RzRsUCy
iygl4u45kOjl/kmWmg+/roh9pqZTJzyOiqioGSNTqCUrZS616zNZrwSZke+/lhPa
A2C3wKZVLsZjGqKGCt+ert4PBnjLeCkpEGMbGe26LhuJTe9B8LqtOT40UELhl+3v
3SrmtMsv8bL664FKsgMTg6fT5rpQAiyFOcShkVaqJSMWoj2sxVXabjvdnghv3ZFY
ns6NhUYQ7qrhq3oQjuy0u4lcEhnnHlRrB5vIDhv+h/3tT/RUmqxuJwdvNmDen6/7
0GWuYknigzTBr2yMkSCNAX89vpJYg9mDMXAZBM0Qr3rZrNUFrtcPpV3j775PJypD
gUJ69iJqRKsL2Jw8E58J0JPvyHFvvPjQAgYkpcTpUsQKwyKbAMZ4N5RWjHC1802p
ZvxgSKJNvVYERu+cnpMLM13Hu27C5ajqb5RqQULZ3CCT8kKO8qDPARcFzKM6ajUN
Scg3F/d3ALVLEyA+4KajrBuyVZrsgncyRuMpR9+W1eavMAxLxjOij83XbUNaBNa+
B/UDva/autNWZATLbmSSIUJv0+rY5aTr0ueJ0+g1J+gQAxTHsbw=
=slRi
-----END PGP SIGNATURE-----
```
