Catalog / Node.js

24.22.0

2026-10-14, Version 24.22.0 'Krypton' (LTS), @richardlau prepared by @aduh95

todaysecurityaddedchangedOriginal notes

Notable Changes

  • [ddbf974b47] - (SEMVER-MINOR) crypto: add crypto.parsePKCS12() (Brian Muenzenmeyer) #65627
  • [c162c68ff0] - (SEMVER-MINOR) crypto: add a generic MAC API (Filip Skokan) #65553
  • [a4ab3d84d7] - (SEMVER-MINOR) crypto: discover ciphers from OpenSSL providers (Filip Skokan) #65484
  • [c2f1e829ea] - (SEMVER-MINOR) crypto: discover hashes from OpenSSL providers (Filip Skokan) #65484
  • [51aad5a80d] - (SEMVER-MINOR) crypto: enable SIV and GCM-SIV modes in Cipher/Decipher APIs (Filip Skokan) #63411
  • [d11c65d2f2] - doc: add araujogui to collaborators (Guilherme Araújo) #66090
  • [acc1578179] - doc: deprecate Server.prototype._listen2 in node:net (Antoine du Hamel) #65593
  • [a7f8de6362] - (SEMVER-MINOR) net: support sending net.BoundSocket to threads and child processes (Guy Bedford) #64725
  • [60c3eb61bd] - (SEMVER-MINOR) perf_hooks: implement SlidingWindowHistogram (James M Snell) #65825
  • [6b3e6f9d5c] - (SEMVER-MINOR) perf_hooks: implement qrde analysis support in Histogram (James M Snell) #65806
  • [75456a3512] - (SEMVER-MINOR) perf_hooks: implement Histogram meanCI API (James M Snell) #65606
  • [72d1b40c56] - (SEMVER-MINOR) perf_hooks: add CBOR export/import for histogram exchange (James M Snell) #65434
  • [41161dda87] - (SEMVER-MINOR) sqlite: add StatementSync.prototype.close() (Guilherme Araújo) #64232
  • [adbc757d70] - (SEMVER-MINOR) sqlite: add StatementSync.prototype[Symbol.dispose]() (Guilherme Araújo) #64232
  • [241339f072] - (SEMVER-MINOR) src,lib: add util.markPromiseAsHandled (James M Snell) #65805
  • [63b0974d9e] - (SEMVER-MINOR) util: implement util.throttle (James M Snell) #65899
  • [a3bbb5a26f] - (SEMVER-MINOR) util: implement debounce (James M Snell) #65899

Commits

  • [e6832b2cb1] - assert: fix TypeError on deepStrictEqual with null Map key or Set member (Sergey Sannikov) #64449
  • [a079177d9f] - benchmark: add --csv option to compare.js with --analyze (James M Snell) #65922
  • [10b1a0f70f] - benchmark: fix max-regressions detection in compare.js (James M Snell) #65587
  • [e0c7ba8ad5] - benchmark: add --analyze option to benchmark/scatter.js (James M Snell) #65594
  • [21fed10bb0] - benchmark: add crypto class benchmarks (Filip Skokan) #65518
  • [fa912242b7] - buffer: fix unaligned UTF-16LE decoding (Matteo Collina) #65905
  • [a6bd0c1413] - build: suppress OpenSSL asm warnings with clang (Richard Lau) #66023
  • [94e12139ee] - build: derive V8_LOGGING_LEVEL from dcheck_always_on (Joyee Cheung) #65744
  • [7a2f322943] - build: fix quiet default for make builds (Shelley Vohr) #65826
  • [c280d650b0] - build: allow linking shared dependencies in the GN build (Shelley Vohr) #65797
  • [4b23a4472c] - build: enable the V8 sandbox in shared-cage builds (Shelley Vohr) #62237
  • [676e15c003] - build: define V8_CONTIGUOUS_COMPRESSED_RO_SPACE for shared cage (Shelley Vohr) #65464
  • [f784058482] - build: remove obsolete configure flags (Chengzhong Wu) #65456
  • [f63f37d243] - build: activate correct default flags for riscv64 (Stewart X Addison) #65708
  • [da46ac075d] - build: derive NODE_ARCH from target_cpu in the GN build (Shelley Vohr) #65491
  • [249e9a16dd] - build,src: gate jspi flag on V8_ENABLE_WEBASSEMBLY (Piotr Kubaj) #66082
  • [146f00f64b] - child_process: clear timeout timer on spawn-time error too (kishore280) #65506
  • [13987f4418] - crypto: remove redundent std::move call (Antoine du Hamel) #66111
  • [ef957ac85f] - crypto: skip private RSA parameters in key details (Filip Skokan) #66108
  • [8feccc5e22] - crypto: use provider EC group names (Filip Skokan) #66108
  • [764e0d1120] - crypto: fetch ciphers for private-key encoding (Filip Skokan) #66108
  • [50ffed1979] - crypto: decode PKCS#1 keys through providers (Filip Skokan) #66108
  • [56c16b2fd6] - crypto: derive keys through EVP_KDF (Filip Skokan) #66108
  • [a4effe6809] - crypto: use names for asymmetric key algorithms (Filip Skokan) #65966
  • [ddbf974b47] - (SEMVER-MINOR) crypto: add crypto.parsePKCS12() (Brian Muenzenmeyer) #65627
  • [8e631aa48f] - crypto: add Hybrid KEMs to Web Cryptography (Filip Skokan) #65759
  • [5c51129e16] - crypto: optimize private EC JWK import (Filip Skokan) #65908
  • [c2ec40c2d7] - crypto: disable non-FIPS WebCrypto paths in FIPS mode (Filip Skokan) #65172
  • [e198aa0f79] - crypto: read RSA-PSS restrictions from provider (Filip Skokan) #66108
  • [253784f0e9] - crypto: optimize and benchmark key preparation (Filip Skokan) #65892
  • [80a6ad509b] - crypto: avoid EC reconstruction for signature sizing (Filip Skokan) #65908
  • [5b592b772c] - crypto: avoid EC raw export reconstruction (Filip Skokan) #65908
  • [ee956ae3bf] - crypto: export EC JWK coordinates directly (Filip Skokan) #65908
  • [684008be58] - crypto: read EC curve metadata directly (Filip Skokan) #65908
  • [f4665f1c41] - crypto: validate the limit of PBKDF2 iterations (Filip Skokan) #65704
  • [624abbecd7] - crypto: use primordials in HKDF info validation (Filip Skokan) #65704
  • [e4d916f175] - crypto: add mgf1Hash for RSA-OAEP (Adam Mcgrath) #65073
  • [db8a9162a8] - crypto: fix multi-prime RSA JWKs (Filip Skokan) #65649
  • [022ac83504] - crypto: cache valid ECDH key pairs (Filip Skokan) #65615
  • [c61953ebcc] - crypto: add strict mode to --force-fips (Filip Skokan) #65645
  • [db6ea132a5] - crypto: add FIPS indicator diagnostics channel (Filip Skokan) #65645
  • [c162c68ff0] - (SEMVER-MINOR) crypto: add a generic MAC API (Filip Skokan) #65553
  • [2b62aafd20] - crypto: validate JWK usages before key_ops (Filip Skokan) #65550
  • [ec7819db69] - crypto: fix RSA-PSS oversized salt handling (Filip Skokan) #65550
  • [a4ab3d84d7] - (SEMVER-MINOR) crypto: discover ciphers from OpenSSL providers (Filip Skokan) #65484
  • [c2f1e829ea] - (SEMVER-MINOR) crypto: discover hashes from OpenSSL providers (Filip Skokan) #65484
  • [51aad5a80d] - (SEMVER-MINOR) crypto: enable SIV and GCM-SIV modes in Cipher/Decipher APIs (Filip Skokan) #63411
  • [5a46a9acbb] - crypto: improve SubtleCrypto.supports() accuracy (Filip Skokan) #65222
  • [191ebfb26c] - crypto: fix public PKCS8 export error (한국) #65609
  • [b6d7ed372b] - crypto: fix private SPKI export error (Filip Skokan) #65550
  • [79509c25a4] - crypto: correct CCM decryption FIPS error message (kyungrae) #65450
  • [9adc87bc16] - crypto: harden X509Certificate state (Filip Skokan) #65518
  • [c63aa331b4] - crypto: optimize key slot caching (Filip Skokan) #65518
  • [87daea43a7] - crypto: add null checks for OPENSSL_INIT_new() (Nora Dossche) #63457
  • [98ca5e9358] - crypto: prevent Hmac.digest() from returning uninitialized memory (Matteo Collina) #65112
  • [0c090a28cd] - crypto: avoid throwing CryptoKey brand checks (Filip Skokan) #65503
  • [a13cc3f723] - crypto: avoid throwing KeyObject brand checks (Filip Skokan) #65503
  • [b8db0045ef] - deps: V8: cherry-pick ea9c016f26ad (Gundepalli Sravani) #66570
  • [ba09b53487] - deps: V8: backport c3553509f460 (Jakob Linke) #66089
  • [9ce8ef405b] - deps: V8: backport 8901c793e439 (Toon Verwaest) #66089
  • [fb0d0ca289] - deps: V8: backport 0b94a9fd23ba (Ruan Gustavo) #65753
  • [2faca508c0] - deps: update googletest to 8eff9e336692fc95961e096564f1044c600b881d (Node.js GitHub Bot) #66009
  • [4396c9bffe] - deps: update googletest to 283c17563fe7a1111cd7f581aa5d541e8baeff2f (Node.js GitHub Bot) #65833
  • [8a5b12570c] - deps: update simdjson to 4.6.11 (Node.js GitHub Bot) #65834
  • [c47feb09e8] - deps: update zlib to 1.3.2.1-motley-285e94b (Node.js GitHub Bot) #65835
  • [9f0d905286] - deps: upgrade npm to 11.19.1 (npm team) #65573
  • [373cd332d8] - deps: update googletest to 36ba75f0ad5383a9759f17f3f72fd4661c72cb6d (Node.js GitHub Bot) #65654
  • [aeed6132a7] - deps: update simdjson to 4.6.9 (Node.js GitHub Bot) #65655
  • [2583571342] - deps: update zlib to 1.3.2.1-motley-5eb4d7e (Node.js GitHub Bot) #65494
  • [d11c65d2f2] - doc: add araujogui to collaborators (Guilherme Araújo) #66090
  • [0a4a8d602a] - doc: fix duplicate 'the' typo in node_platform.cc (Muhammad Al-Muzahid) #66058
  • [b6538138ef] - doc: clarify sub-1000ms behavior in socket.setKeepAlive (Haram Jeong) #65869
  • [d319fa7de4] - doc: remove obsolete mentioning of cl.exe on windows (Chengzhong Wu) #66038
  • [67cb305b59] - doc: note that default signal handling resets the signal mask (Shelley Vohr) #65877
  • [160d44e025] - doc: clarify QUIC async write backpressure (John Finnerty) #65947
  • [ffd47a7ee5] - doc: clarify permission model scope for output paths (Rafael Gonzaga) #66004
  • [2e1772a8ab] - doc: fill in missing zstd docs (James M Snell) #65867
  • [9f88c6f8dc] - doc: add inoway46 as triager (Yuya Inoue) #65565
  • [c2620d01f3] - doc: document windowsHide for child_process.fork (Christopher Buss) #65887
  • [6076111e1a] - doc: qualify directory read ordering for native fs (Trivikram Kamat) #65868
  • [7bf048a336] - doc: add DOMException section to errors API reference (Avocado) #65206
  • [414b6bfa62] - doc: expand revert commit collaborator instructions (Mike McCready) #65848
  • [c8ac91692c] - doc: note that FreeEnvironment() runs a shared event loop (Shelley Vohr) #65691
  • [cc47cc0983] - doc: clarify security triage dispositions and permission boundaries (Rafael Gonzaga) #65436
  • [8b79a71e78] - doc: fix default limit of maxHeadersCount (Aryn H) #65472
  • [56b1252a54] - doc: fix return types for sync methods (Chiang Fong Lee) #58575
  • [da0d32a333] - doc: document REPL DEP0185 throws and uncaught-exception behavior (Adrián Estrada) #64993
  • [f8ab3619b6] - doc: document close() error when in a sqlite callback (Trivikram Kamat) #65090
  • [131f1db302] - doc: clarify return type of fs.mkdtemp* (Antoine du Hamel) #65743
  • [7755e98183] - doc: update changelog-maker instructions for releasing (Juan José) #65707
  • [f982a53433] - doc: add stability status to crypto.setEngine (Antoine du Hamel) #65746
  • [17be003f7c] - doc: remove outdated TLS authorized warning (Tim Perry) #65597
  • [424002232d] - doc: fix stale TOC in maintaining-dependencies (greenhead) #65523
  • [dddb9b57a5] - doc: refactor the AI guidelines (Joyee Cheung) #65269
  • [397b58e113] - doc: fix triggerAsyncId() comment in async_hooks example (soreavis) #64583
  • [338ec94d83] - doc: fix fsPromises.watch overflow value (Matt Radbourne) #64605
  • [f18be21b14] - doc: clarify stream direction in options.stdio note (Avocado) #65236
  • [f07c6acd8b] - doc: clarify signal listener behavior (Som Samantray) #65243
  • [8bc17b0c7a] - doc: add test reporter event lifecycle diagram (sangwook) #63780
  • [452e7477d4] - doc: discourage AbortSignal cleanup for long-lived resources (Efe Karasakal) #64342
  • [acc1578179] - doc: deprecate Server.prototype._listen2 in node:net (Antoine du Hamel) #65593
  • [e7ed4361d6] - doc,test: account for OpenSSL 4.1 behaviours (Filip Skokan) #65956
  • [c65fafeab4] - errors: validate constructor name (Christian Aurich) #65607
  • [f6b47938b7] - events: fix weak listener retention overwrite (Aryan) #64024
  • [a27db42c3e] - fs: coerce FileHandle.read length like fs.read (Xia Chao) #65521
  • [f3019b522a] - fs: throw on existing dir in cpSync with errorOnExist (Daijiro Wachi) #64124
  • [cd1011458f] - fs: support removing read-only files in rmSync on Windows (Sparsh :)) #64453
  • [d659dd8cd8] - fs: give directories created by cpSync the source directory's mode (Shelley Vohr) #65488
  • [1dfb047293] - fs: handle recursive watch setup races (Filip Skokan) #65699
  • [bc431c8413] - fs: apply nocase to literal glob exclude patterns (Yusuke Hayashi) #64817
  • [dd5662e641] - fs: do not descend into symlinks for ** unless following symlinks (RafaelGSS) #65435
  • [ac4cf54292] - fs: watch directories, not files, in recursive fs.watch fallback (Shelley Vohr) #65486
  • [7804bfbd71] - fs: preserve directory timestamps in cp (Abhinandan Kumar) #65540
  • [ba5ca5a1a5] - fs: fix recursive watch error handling (Filip Skokan) #65635
  • [b71c4c0551] - fs: fix rmSync error messages for non-ASCII paths (Yeaseen) #61233
  • [53b4700892] - http: don't destroy socket after request completes (Barath Raj) #65952
  • [96d4c23f17] - http: fast-forward teardown of unread messages (Matteo Collina) #65732
  • [742b4bf5a6] - http: coalesce chunked writes during auto-corking (GetThatCookie) #64987
  • [8921108175] - http2: settle pending write callbacks on destroy (Matteo Collina) #66016
  • [9a2f77a3fc] - http2: fix onread assert when destroying session from stream handler (Sankalp Thakur) #65116
  • [99e41eb43a] - http2: error for incomplete reads on RST, auto-drain, deprecate aborted (Tim Perry) #63249
  • [d520b9601c] - http2: fix write deadlock exposed by larger window sizes (Tim Perry) #65440
  • [86b2497aae] - http2: fix async context loss when trailers carry END_STREAM (Orgad Shaneh) #63814
  • [536ccc7daf] - https: limit proxy CONNECT response headers (Matteo Collina) #64545
  • [fe6147832b] - inspector: fix abort when two Environments own the inspector (Shelley Vohr) #65877
  • [843a27782a] - inspector: fix crash when the IsolateData has no platform (Shelley Vohr) #65818
  • [3f0b6d3308] - lib: avoid repeat internal receiver checks (Filip Skokan) #65910
  • [0039479b4a] - lib: fix shared buffer growability validation (Filip Skokan) #65845
  • [e7907130ae] - lib: use Web IDL interface brand checks (Filip Skokan) #65846
  • [7ae085552b] - lib: fix AbortSignal.any() abort propagation (Yuya Inoue) #66014
  • [01032f4fdc] - lib: fix for FileHandle.readableWebStream (Patrick Dähne) #58842
  • [60a9a28206] - lib: avoid unsafe array iteration in cli table (Donghoon Kang) #65838
  • [230a7fcef0] - lib: optimize internal Web IDL dictionaries (Filip Skokan) #65857
  • [7cc02b14ec] - lib: validate sequence iterator objects (Filip Skokan) #65844
  • [c2bb3aeccc] - lib: defer source map payload decoding until first use (Shelley Vohr) #65490
  • [c4b390cf17] - lib: optimize async context frame activation (Tim Perry) #65519
  • [3e4fc50a4f] - lib: use validateArray for array arguments (JunHwan Choi) #65344
  • [b351ac9cd4] - meta: bump step-security/harden-runner from 2.21.0 to 2.21.1 (dependabot[bot]) #66044
  • [693e890fec] - meta: bump github/codeql-action/upload-sarif from 4.37.9 to 4.38.0 (dependabot[bot]) #66046
  • [9c2abc13c2] - meta: bump github/codeql-action/init from 4.37.9 to 4.38.0 (dependabot[bot]) #66048
  • [b3c5c2b91d] - meta: bump github/codeql-action/analyze from 4.37.9 to 4.38.0 (dependabot[bot]) #66049
  • [2428b13b02] - meta: bump github/codeql-action/autobuild from 4.37.9 to 4.38.0 (dependabot[bot]) #66050
  • [eff5d15041] - meta: add joyeecheung as v8 currency strategic initiative champion (Joyee Cheung) #65965
  • [aa549fed0d]

These notes run past the length kept in the archive. The rest is on the publisher’s page.