Repository navigation
2026-11-12, Version 27.0.0-alpha.0.1.0 (Alpha) - #67415
Open
github-actions[bot] wants to merge 195 commits into
Open
github-actions[bot] wants to merge 195 commits into
github-actions[bot] wants to merge 195 commits into
Conversation
They are not maintained in this repository. Signed-off-by: Antoine du Hamel <duhamelantoine1995@gmail.com> PR-URL: #66988 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
PR-URL: #66988 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
PR-URL: #66815 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Refs: #64777 (review) Signed-off-by: Filip Skokan <panva.ip@gmail.com> PR-URL: #67005 Reviewed-By: Richard Lau <richard.lau@ibm.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
When uv_dlopen() fails, the error message it allocates is only released by uv_dlclose(). DynamicLibrary::Close() skips uv_dlclose() when the handle is null, so each failed ffi.dlopen() leaked the message. Call uv_dlclose() on the failure path, as DLib::Open() does. Signed-off-by: Trivikram Kamat <16024985+trivikr@users.noreply.github.com> Assisted-by: claude:opus-5.5 PR-URL: #67007 Fixes: #67006 Reviewed-By: Daeyeon Jeong <daeyeon.dev@gmail.com> Reviewed-By: Paolo Insogna <paolo@cowtech.it>
Extends the module compile cache to WebAssembly modules loaded through the ES module integration. A new kWasm entry type is keyed on the module URL with the wire bytes as the hashed source, and stores the serialized CompiledWasmModule. On load, cached code is deserialized through v8::WasmModuleCompilation with the same compile options the translator uses (js-string builtins and imported string constants), falling back to compilation when V8 rejects it. As for JavaScript, the cache entry is generated right after compilation. V8 only serializes optimized tier code, so with the default lazy baseline compilation there is nothing to cache and no entry is written; a complete cache requires --no-liftoff --no-wasm-lazy-compilation, which is documented as the way to use the compile cache for WebAssembly. Signed-off-by: Guy Bedford <guybedford@gmail.com> Assisted-by: Claude Code PR-URL: #66191 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
X509Certificate cloning drops issuerCertificate and shares its native X509 object with the receiving isolate. Snapshot the leaf and supplied peer chain as DER, then parse separate native certificates in each isolate. Construct the JavaScript chain iteratively for TLS inspection, structuredClone(), MessagePort, and workers. Each supplied position gets its own object, including repeated certificate encodings. Refs: #65602 Assisted-by: Codex Signed-off-by: Filip Skokan <panva.ip@gmail.com> PR-URL: #66898 Reviewed-By: Tim Perry <pimterry@gmail.com>
X509View::isIssuedBy() clears the caller's OpenSSL error queue on entry and exit, including when either certificate is missing. Use a mark/pop scope to discard errors from the issuer check without losing earlier diagnostics. Cover successful checks, mismatches, malformed extensions, and null inputs with empty and populated queues. Assisted-by: Codex Signed-off-by: Filip Skokan <panva.ip@gmail.com> PR-URL: #66898 Reviewed-By: Tim Perry <pimterry@gmail.com>
closeSession() set SESSION_FLAGS_DESTROYED and then called session.setTimeout(0). setStreamTimeout() returns early when the session is destroyed, so the idle timer stayed armed and retained the session until the server timeout fired. Clear the timeout and remove its listeners before setting the destroyed flag. Fixes: #66885 Signed-off-by: huang <13165998033@163.com> PR-URL: #66886 Reviewed-By: Tim Perry <pimterry@gmail.com>
Bumps [github/codeql-action/init](https://github.com/github/codeql-action) from 4.38.2 to 4.39.1. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@2892aa5...9b32540) Bumps [github/codeql-action/upload-sarif](https://github.com/github/codeql-action) from 4.38.2 to 4.39.1. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@2892aa5...9b32540) Bumps [github/codeql-action/autobuild](https://github.com/github/codeql-action) from 4.38.2 to 4.39.1. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@2892aa5...9b32540) Bumps [github/codeql-action/analyze](https://github.com/github/codeql-action) from 4.38.2 to 4.39.1. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@2892aa5...9b32540) --- updated-dependencies: - dependency-name: github/codeql-action/init dependency-version: 4.39.1 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: github/codeql-action/upload-sarif dependency-version: 4.39.1 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: github/codeql-action/autobuild dependency-version: 4.39.1 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: github/codeql-action/analyze dependency-version: 4.39.1 dependency-type: direct:production update-type: version-update:semver-minor ... PR-URL: #67028 Reviewed-By: Christian Clauss <cclauss@me.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
`zlib.inflateSync(buffer)` and the other synchronous convenience methods constructed a Transform stream for every call, even though only its native handle is used and, without options, the stream is never exposed. They also allocated a fresh output chunk for every call. When no options are passed, drive a native handle created with the default settings directly, and decompress into a scratch buffer kept between calls, copying the result out. Calls with options, including `info`, keep the existing path. Results and errors are unchanged. Signed-off-by: Yagiz Nizipli <yagiz@nizipli.com> Assisted-by: Grok PR-URL: #66864 Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
The asynchronous convenience methods (`zlib.deflate()`,
`zlib.inflate()`, `zlib.gunzip()`, ...) wrote the input to a
Transform stream and then ended it. That took two threadpool round
trips, one for the data and one for the final flush, and ran the
result through the stream machinery.
The whole input is known up front, so unless `info` or a custom
`flush` is requested, process it with the finish flush directly, the
way the synchronous methods already do, and collect the output in the
write callback. A call whose output fits in one buffer now takes a
single threadpool round trip. The output is unchanged: the previous
two-write sequence already produced the same bytes as the synchronous
methods. `zstdCompress()` keeps the separate end-of-frame write,
because a single `ZSTD_e_end` call can produce slightly larger frames.
benchmark/compare.js, 40 runs, n=100000:
confidence improvement
zlib/inflate.js method='inflate' *** +94.91 %
zlib/deflate.js method='deflate' *** +66.27 %
Signed-off-by: Yagiz Nizipli <yagiz@nizipli.com>
Assisted-by: Grok
PR-URL: #66863
Reviewed-By: Robert Nagy <ronagy@icloud.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
The asynchronous convenience methods hand the whole input to zlib in one write, but still take one threadpool round trip per `chunkSize` (16 KiB by default) of output. Decompressing 4 MiB took 257 round trips. Only the concatenated result of these calls is observable, so double the output buffer whenever it fills up, up to 1 MiB. 4 MiB of output now takes 10 round trips. The buffer never grows past what is needed to tell that `maxOutputLength` was exceeded, and results that fit in the first buffer are unchanged. Signed-off-by: Yagiz Nizipli <yagiz@nizipli.com> Assisted-by: Grok PR-URL: #66863 Reviewed-By: Robert Nagy <ronagy@icloud.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Bumps [undici](https://github.com/nodejs/undici) from 6.28.0 to 6.29.1. - [Release notes](https://github.com/nodejs/undici/releases) - [Commits](nodejs/undici@v6.28.0...v6.29.1) --- updated-dependencies: - dependency-name: undici dependency-version: 6.29.1 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> PR-URL: #67027 Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Ulises Gascón <ulisesgascongonzalez@gmail.com>
Bumps [piscina](https://github.com/piscinajs/piscina) from 5.2.0 to 5.3.2. - [Release notes](https://github.com/piscinajs/piscina/releases) - [Changelog](https://github.com/piscinajs/piscina/blob/v5.3.2/CHANGELOG.md) - [Commits](piscinajs/piscina@v5.2.0...v5.3.2) --- updated-dependencies: - dependency-name: piscina dependency-version: 5.3.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> PR-URL: #67026 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 7.0.1 to 7.0.2. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](actions/upload-artifact@043fb46...cf430e0) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: 7.0.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> PR-URL: #67024 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: Ulises Gascón <ulisesgascongonzalez@gmail.com> Reviewed-By: Tierney Cyren <hello@bnb.im> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 8.0.1 to 8.0.2. - [Release notes](https://github.com/actions/download-artifact/releases) - [Commits](actions/download-artifact@3e5f45b...9000827) --- updated-dependencies: - dependency-name: actions/download-artifact dependency-version: 8.0.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> PR-URL: #67018 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: Ulises Gascón <ulisesgascongonzalez@gmail.com>
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 7.0.0 to 7.1.0. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](actions/setup-node@8207627...949feb2) --- updated-dependencies: - dependency-name: actions/setup-node dependency-version: 7.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> PR-URL: #67032 Reviewed-By: Christian Clauss <cclauss@me.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Bumps the eslint group in /tools/eslint with 5 updates: | Package | From | To | | --- | --- | --- | | [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) | `8.0.6` | `8.0.7` | | [@babel/eslint-parser](https://github.com/babel/babel/tree/HEAD/eslint/babel-eslint-parser) | `8.0.6` | `8.0.7` | | [eslint](https://github.com/eslint/eslint) | `10.11.0` | `10.13.0` | | [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) | `64.5.4` | `65.4.0` | | [globals](https://github.com/sindresorhus/globals) | `17.12.0` | `17.13.0` | Updates `@babel/core` from 8.0.6 to 8.0.7 - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v8.0.7/packages/babel-core) Updates `@babel/eslint-parser` from 8.0.6 to 8.0.7 - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v8.0.7/eslint/babel-eslint-parser) Updates `eslint` from 10.11.0 to 10.13.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Commits](eslint/eslint@v10.11.0...v10.13.0) Updates `eslint-plugin-jsdoc` from 64.5.4 to 65.4.0 - [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases) - [Commits](gajus/eslint-plugin-jsdoc@v64.5.4...v65.4.0) Updates `globals` from 17.12.0 to 17.13.0 - [Release notes](https://github.com/sindresorhus/globals/releases) - [Commits](sindresorhus/globals@v17.12.0...v17.13.0) --- updated-dependencies: - dependency-name: "@babel/core" dependency-version: 8.0.7 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: eslint - dependency-name: "@babel/eslint-parser" dependency-version: 8.0.7 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: eslint - dependency-name: eslint dependency-version: 10.13.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: eslint - dependency-name: eslint-plugin-jsdoc dependency-version: 65.4.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: eslint - dependency-name: globals dependency-version: 17.13.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: eslint ... Signed-off-by: dependabot[bot] <support@github.com> PR-URL: #67025 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 7.0.0 to 7.1.0. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](actions/setup-python@5fda3b9...6d4fd22) --- updated-dependencies: - dependency-name: actions/setup-python dependency-version: 7.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> PR-URL: #67021 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: Christian Clauss <cclauss@me.com>
Signed-off-by: Antoine du Hamel <duhamelantoine1995@gmail.com> PR-URL: #66904 Reviewed-By: Filip Skokan <panva.ip@gmail.com>
Preserve literal IP hosts on net.Socket before connection. This keeps wrapped TLS sessions bound to the correct peer when tls.connect() uses a provided socket. Fixes: #64402 Signed-off-by: harjoth <harjoth.khara@gmail.com> Assisted-by: Codex PR-URL: #64430 Reviewed-By: Tim Perry <pimterry@gmail.com>
Bumps [ossf/scorecard-action](https://github.com/ossf/scorecard-action) from 2.4.4 to 2.5.0. - [Release notes](https://github.com/ossf/scorecard-action/releases) - [Changelog](https://github.com/ossf/scorecard-action/blob/main/RELEASE.md) - [Commits](ossf/scorecard-action@2d11466...fa7117d) --- updated-dependencies: - dependency-name: ossf/scorecard-action dependency-version: 2.5.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> PR-URL: #67020 Reviewed-By: Ulises Gascón <ulisesgascongonzalez@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Signed-off-by: HoonDongKang <d159123@naver.com> PR-URL: #66920 Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com> Reviewed-By: Guilherme Araújo <arauujogui@gmail.com>
Statement::Close() untracks itself, so the constructor should track itself too, like Session does, instead of relying on every caller. Signed-off-by: Guilherme Araújo <arauujogui@gmail.com> PR-URL: #66912 Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Replace the custom deleter structs and OnScopeLeave cleanups with DeleteFnPtr aliases, and pass session ownership to Session::Create. Signed-off-by: Guilherme Araújo <arauujogui@gmail.com> PR-URL: #66912 Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Route every exit through Settle(), which finalizes, settles the promise and deletes the job once. This also frees the job when building the progress object fails. Signed-off-by: Guilherme Araújo <arauujogui@gmail.com> PR-URL: #66912 Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Store the template on the environment like the other sqlite classes, so stores no longer get a fresh template and prototype each time. Signed-off-by: Guilherme Araújo <arauujogui@gmail.com> PR-URL: #66912 Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Extract SignBaseHandle for the shared init and update methods. Preserve existing signatures and runtime behavior. Assisted-by: Codex Signed-off-by: leah-1ee <selee3196@gmail.com> PR-URL: #66499 Reviewed-By: Tim Perry <pimterry@gmail.com>
When the timeout option of spawn(), exec(), execFile() or fork() expires, the child is sent the kill signal and exits with that signal. Nothing told the caller that the timeout was the reason. Set subprocess.timedOut to true when the kill signal is sent because of the timeout, and add the same flag to the error passed to the exec() and execFile() callback. Fixes: #51561 Refs: #51608 Signed-off-by: marcopiraccini <marco.piraccini@gmail.com> PR-URL: #66639 Reviewed-By: Paolo Insogna <paolo@cowtech.it>
PR-URL: #67331 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Tim Perry <pimterry@gmail.com>
PR-URL: nodejs-private/node-private#1038 Reviewed-By: Paolo Insogna <paolo@cowtech.it>
Http2Session::AltSvc allocated origin and field-value buffers at their exact lengths but requested V8 to append a null terminator. This wrote one byte past heap-backed buffers. nghttp2_submit_altsvc() consumes explicit lengths and makes its own terminated copies. Write only the string contents. Assisted-by: OpenAI Codex Signed-off-by: Matteo Collina <hello@matteocollina.com> PR-URL: nodejs-private/node-private#1035 Reviewed-By: Tim Perry <pimterry@gmail.com> CVE-ID: CVE-2026-123828
When params() queues its flush behind another write, destroying the stream invokes the flush callback after the native handle is closed. Propagate the write error instead of accessing the closed handle. Assisted-by: Codex Signed-off-by: Matteo Collina <hello@matteocollina.com> PR-URL: nodejs-private/node-private#1037 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> CVE-ID: CVE-2026-123862
When a peer sends more header fields than `maxHeaderListPairs`, the stream is reset and the fields it had already accepted stay in `current_headers_`. Each of them holds nghttp2 buffers. `RemoveStream()` adjusted the session memory accounting but kept the headers. A destroyed stream that still has a write on the socket is not detached and can be collected after its session. The session destructor only detaches the streams it still knows about, so the nghttp2 memory held by the removed stream is still allocated and `CHECK_EQ(current_nghttp2_memory_, 0)` aborts the process. A client can trigger this with a single connection. Clear the headers in `RemoveStream()`, while the session is still alive, and in the session destructor for the streams that are still registered, since `Detach()` does not free a stream that is referenced elsewhere. Refs: https://hackerone.com/reports/4150893 Signed-off-by: Matteo Collina <hello@matteocollina.com> PR-URL: nodejs-private/node-private#1026 Reviewed-By: Robert Nagy <ronagy@icloud.com> Reviewed-By: Tim Perry <pimterry@gmail.com> CVE-ID: CVE-2026-123863
An empty write on a TLS socket calls `ClearOut()` directly, even when it comes from JS that runs inside `Cycle()`, for example the HTTP parser's `on_body`. `ClearOut()` then decrypts the next record and passes it to the same listener while it is still processing the current one. For an HTTPS server this runs `llhttp_execute()` inside itself. The nested call can stop in the middle of a body chunk and leave the open span pointing into its own buffer, which is freed when it returns. The outer call then reports that span against its own buffer, so the request body contains server heap memory, or the process aborts. Skip the read on an empty write while a cycle is running. The cycle reads the next record once the listener has returned. In the HTTP parser, re-entrant `Execute()` calls remain supported, but each call now restores the caller's buffer when it returns, and data callbacks fail with `HPE_REENTRANT_EXECUTE` when they point outside the buffer that is being executed. Refs: https://hackerone.com/reports/4150886 Signed-off-by: Matteo Collina <hello@matteocollina.com> PR-URL: nodejs-private/node-private#1021 Reviewed-By: Paolo Insogna <paolo@cowtech.it> Reviewed-By: Tim Perry <pimterry@gmail.com> CVE-ID: CVE-2026-123864
llhttp is not reentrant: it keeps its position in the input in the parser state and only updates it when `llhttp_execute()` returns. Instead of supporting nested calls, make sure that llhttp never runs inside itself. - `socketOnData` on the server and the client puts data that arrives while the parser is executing back into the socket, and resumes the socket after the current call. - `Parser::Execute()` does not run llhttp while it is already running. A nested call with data fails the outer call with `HPE_REENTRANT_EXECUTE`. A nested `finish()`, which comes from tearing down the connection in a callback, is skipped. This replaces the buffer bounds check on data callbacks. Refs: https://hackerone.com/reports/4150886 Signed-off-by: Matteo Collina <hello@matteocollina.com> PR-URL: nodejs-private/node-private#1021 Reviewed-By: Paolo Insogna <paolo@cowtech.it> Reviewed-By: Tim Perry <pimterry@gmail.com> CVE-ID: CVE-2026-123864
`CertCbDone()` only installed an SNI context's CA store and client CA
list when `setSniContext()` succeeded, which requires the context to
have a certificate. A context added with `server.addContext(host,
{ ca })` was therefore ignored for client certificate verification,
and clients for that host were verified against the default context's
CA instead.
Apply the SNI context's CA whenever it configured one through
`addCACert()`, even without a certificate. A context with neither a
certificate nor its own CA still keeps the default trust store, rather
than switching to the bundled root certificates. Also report a failure
of `setSniContext()` instead of silently continuing with the default
credentials.
Refs: https://hackerone.com/reports/4103553
Signed-off-by: Matteo Collina <hello@matteocollina.com>
PR-URL: nodejs-private/node-private#1020
Reviewed-By: Tim Perry <pimterry@gmail.com>
CVE-ID: CVE-2026-123867
Partial writes can leave slices of a stream's queued buffers in the session's outgoing write. Destroying the stream completes the original write request and allows those buffers to be collected while the socket still references them. Retain a non-completing reference to the write request for each queued buffer and propagate it to partial slices. Assisted-by: pi Signed-off-by: Matteo Collina <hello@matteocollina.com> PR-URL: nodejs-private/node-private#1017 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> CVE-ID: CVE-2026-123866
The earlier fix to redact proxy credentials only covered the tunnel error and the ProxyConfig.href property. Four other error paths still interpolate the raw proxy URL, credentials included, into ERR_PROXY_INVALID_CONFIG messages: * lib/internal/http.js - ProxyConfig constructor when new URL() fails. * lib/internal/http.js - parseProxyUrl when the URL contains CR or LF. * lib/http.js - setGlobalProxyFromEnv() with an unparseable http_proxy. * lib/http.js - setGlobalProxyFromEnv() with an unparseable https_proxy Add a redactProxyUrl() helper that strips userinfo when parsing succeeds and falls back to a textual strip for the unparseable cases that reach the vulnerable paths, then route all four sites through it. Refs: https://hackerone.com/reports/3966924 Signed-off-by: Matteo Collina <hello@matteocollina.com> PR-URL: nodejs-private/node-private#1001 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> CVE-ID: CVE-2026-123871
Encode TLS option types and values in HTTPS Agent keys so distinct trust and identity policies cannot share sockets or cached sessions. Assign stable identities to opaque SecureContext and callback objects. Refs: https://hackerone.com/reports/3946081 Assisted-by: codex:gpt-5.6-sol Signed-off-by: Matteo Collina <hello@matteocollina.com> PR-URL: nodejs-private/node-private#1036 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> CVE-ID: CVE-2026-123877
Signed-off-by: Tim Perry <pimterry@gmail.com> PR-URL: nodejs-private/node-private#1030 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> CVE-ID: CVE-2026-123872
Signed-off-by: Tim Perry <pimterry@gmail.com> PR-URL: nodejs-private/node-private#1030 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> CVE-ID: CVE-2026-123872
Signed-off-by: Tim Perry <pimterry@gmail.com> PR-URL: nodejs-private/node-private#1030 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> CVE-ID: CVE-2026-123872
Signed-off-by: RafaelGSS <rafael.nunu@hotmail.com> PR-URL: nodejs-private/node-private#967 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> CVE-ID: CVE-2026-123829
Inbound DATA frames delivered to JS while a stream is paused are retained in the stream's readable buffer until the application reads them. These were not counted against the session's maxSessionMemory, so a peer could send many tiny DATA frames on a stream the application is not draining and make the session retain an unbounded amount of memory, in proportion to the number of frames rather than the bytes sent. Charge each such DATA chunk (plus a per-chunk overhead comparable to the Buffer view bookkeeping) against maxSessionMemory, and release it when the stream resumes reading (ReadStart) or is destroyed (RemoveStream). Add connection-level backpressure so the session stops reading from the socket once it can no longer afford the inbound queued data, resuming when the application consumes it. Refs: https://hackerone.com/reports/4089663 Signed-off-by: Matteo Collina <hello@matteocollina.com> PR-URL: nodejs-private/node-private#1000 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> CVE-ID: CVE-2026-123868
Native file responses create write requests without a JS reference to the Http2Stream wrapper. Resetting a stream while its socket write is pending could let GC delete the stream before WriteWrap::OnDone(). Keep a strong stream reference with each outgoing DATA buffer until the underlying write completes. Assisted-by: codex:gpt-5.6-sol Signed-off-by: Matteo Collina <hello@matteocollina.com> PR-URL: nodejs-private/node-private#1040 Refs: https://hackerone.com/reports/4150891 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: Ulises Gascón <ulisesgascongonzalez@gmail.com> CVE-ID: CVE-2026-123874
Signed-off-by: Tim Perry <pimterry@gmail.com> PR-URL: nodejs-private/node-private#1018 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: Ulises Gascón <ulisesgascongonzalez@gmail.com> CVE-ID: CVE-2026-126051
Notable changes: child_process: * (SEMVER-MINOR) add subprocess.timedOut (Marco) #66639 crypto: * (SEMVER-MINOR) make X.509 inspection guards explicit (Filip Skokan) #67245 * (SEMVER-MINOR) add X.509 generation with CSR support (Filip Skokan) #67245 dns: * (SEMVER-MINOR) coalesce identical concurrent lookup() requests (Orgad Shaneh) #62599 doc: * add efekrskl to collaborators (Efe Karasakal) #67376 * add Philipp Dunkel to contributors (Philipp Dunkel) #67378 * add christianaurichzm to collaborators (Christian Aurich Zanettini Martins) #67377 http: * (SEMVER-MINOR) batch body spans per parser execute (Guilherme Araújo) #67187 sea: * (SEMVER-MINOR) generate a compile cache for the VFS modules (Matteo Collina) #66768 worker: * (SEMVER-MINOR) preload streams into startup snapshot (Matteo Collina) #66311 PR-URL: #67415
Collaborator
|
Review requested:
|
aduh95
marked this pull request as ready for review
November 11, 2026 17:27
aduh95
approved these changes
Nov 11, 2026
Collaborator
Contributor
Author
Version changes
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
2026-11-12, Version 27.0.0-alpha.0.1.0 (Alpha), @aduh95
Notable Changes
33d4e6c73a] - (SEMVER-MINOR) child_process: add subprocess.timedOut (Marco) #66639edc7ec4a77] - (SEMVER-MINOR) crypto: make X.509 inspection guards explicit (Filip Skokan) #672450882e9729b] - (SEMVER-MINOR) crypto: add X.509 generation with CSR support (Filip Skokan) #672452360d3860e] - (SEMVER-MINOR) dns: coalesce identical concurrent lookup() requests (Orgad Shaneh) #62599dc4aa75983] - doc: add efekrskl to collaborators (Efe Karasakal) #673769695304ab8] - doc: add Philipp Dunkel to contributors (Philipp Dunkel) #6737841db1f7b6b] - doc: add christianaurichzm to collaborators (Christian Aurich Zanettini Martins) #673776b8a90d41d] - (SEMVER-MINOR) http: batch body spans per parser execute (Guilherme Araújo) #671878ffcb3ee55] - (SEMVER-MINOR) sea: generate a compile cache for the VFS modules (Matteo Collina) #667682bbcfa0718] - (SEMVER-MINOR) worker: preload streams into startup snapshot (Matteo Collina) #66311Commits
81d2321054] - benchmark: add URLSearchParams iterator consumers benchmark (Kevin Gibbons) #6683704b4552a77] - Revert "benchmark: add URLSearchParams iterator consumers benchmark" (Antoine du Hamel) #668373ac0b42fb6] - benchmark: add URLSearchParams iterator consumers benchmark (Kevin Gibbons) #66837cdef4ac92b] - benchmark: merge crc32c into crc32 zlib benchmark (Trivikram Kamat) #67004faf48bfc07] - buffer: limit UTF-8 fast calls to safe one-byte strings (Robert Nagy) #67136b7aab20d60] - build: separate host and target Rust artifacts in cross builds (Yuya Inoue) #66823829afea634] - build: refresh markdown lint dependencies on lockfile changes (Yuya Inoue) #67185d9292c4a93] - build: sync Torque outputs with V8 (Filip Skokan) #672389fca7e78bd] - build: use a single producer for shared generated files (Yuya Inoue) #668045848a08450] - build: sort the ICU source lists (Shelley Vohr) #672060e1891a0e2] - build: set V8_DISABLE_PRESERVE_MOST (Joyee Cheung) #670939c57966fb6] - build: error on incompatible dtls configure flags (Antoine du Hamel) #669470487449970] - build: fix overriding node_path in GN build (David Babenko-Sanders) #66805c617a93aa9] - build: remove unused FIPS export condition (Filip Skokan) #67005823549f0da] - build,win: minify pgo training build (Stefan Stojanovic) #672142f89ed5fde] - child_process: inherit a reassigned process.env (Caleb Everett) #6688333d4e6c73a] - (SEMVER-MINOR) child_process: add subprocess.timedOut (Marco) #6663942933d1749] - crypto: remove the FIPS provider name check (Filip Skokan) #67358edc7ec4a77] - (SEMVER-MINOR) crypto: make X.509 inspection guards explicit (Filip Skokan) #672450882e9729b] - (SEMVER-MINOR) crypto: add X.509 generation with CSR support (Filip Skokan) #67245d02681572b] - crypto: fix ncrypto provider behavior (Brad Anderson) #670390c4d131adf] - crypto: prevent stale OpenSSL errors (Matteo Collina) #6722533d28a1fed] - crypto: reuse HMAC contexts in createHmac() (Yagiz Nizipli) #67109b9248dc829] - crypto: skip clearing empty OpenSSL error queues (Yagiz Nizipli) #67109216f1238cd] - crypto: cache digests for synchronous operations (Yagiz Nizipli) #671095991efaf17] - crypto: skip DH checks for recognized groups (Filip Skokan) #670717b8589b5b0] - crypto: add X509Certificate inspection getters (Filip Skokan) #67082ab5da00e5d] - crypto: reject immutable random fill buffers (Filip Skokan) #669441d297add9e] - crypto: preserve errors during X.509 issuer checks (Filip Skokan) #668985409ed48c9] - crypto,tls: clone X.509 chains across isolates (Filip Skokan) #66898988d73f171] - deps: update llhttp to 9.4.4 (Antoine du Hamel) nodejs-private/node-private#1038cb3be3e9b5] - deps: update nghttp2 to 1.71.0 (Node.js GitHub Bot) #673312539d1cb3f] - deps: update ngtcp2 to 1.26.0 (Node.js GitHub Bot) #6725764cdd369d3] - deps: patch V8 to 15.6.75.50 (Node.js GitHub Bot) #67335866be801c1] - deps: update simdjson to 5.1.1 (Node.js GitHub Bot) #673320c0d945a18] - deps: update undici to 8.12.4 (Node.js GitHub Bot) #672724cc7d1bea6] - deps: upgrade npm to 12.2.2 (npm team) #672650c0d3ee663] - deps: V8: cherry-pick c38986131c02 (Joyee Cheung) #67093efd0b5af1a] - deps: load amaro from dist/internal.js (Geoffrey Booth) #6614451ce159d04] - deps: update amaro to 1.3.0 (Node.js GitHub Bot) #6614438da2b9ad9] - deps: update perfetto to 59.1 (Node.js GitHub Bot) #67171c32c7e8d87] - deps: update simdjson to 5.1.0 (Node.js GitHub Bot) #67172be9989a092] - deps: patch V8 to 15.6.75.33 (Node.js GitHub Bot) #671742360d3860e] - (SEMVER-MINOR) dns: coalesce identical concurrent lookup() requests (Orgad Shaneh) #62599402682ed79] - doc: update readable.read() for v26 one-chunk behaviour (Fuma) #67341dc4aa75983] - doc: add efekrskl to collaborators (Efe Karasakal) #673769695304ab8] - doc: add Philipp Dunkel to contributors (Philipp Dunkel) #6737841db1f7b6b] - doc: add christianaurichzm to collaborators (Christian Aurich Zanettini Martins) #67377ffed2aa208] - doc: fix process import in test runner workerId example (Daijiro Wachi) #67316c685695fae] - doc: clarify process.loadEnvFile variable precedence (manjit singh) #6727602f6efa9ed] - doc: fix security pre-alert template (Antoine du Hamel) #6724096384231d5] - doc: fix execFile/execFileSync shell option docs (Paul Bouchon) #64437ce1da53916] - doc: document C++ formatting in the pull request guide (Yuya Inoue) #6720505902663d1] - doc: describe how the permission model grants the entrypoint (Rafael Gonzaga) #670383f12612157] - doc: correct DEP0199 runtime deprecation listing (Mike McCready) #67167f5f18c704f] - doc: add LIEF to the dependency list (Yuya Inoue) #671656cffd6a9fd] - doc: ffi rename OS/400 -> IBM i (Abdirahim Musse) #67144d3cf7a8b04] - doc: list CVE-2026-106072 in v24 changelog (inoway46) #66984a806217855] - doc: list CVE-2026-106072 in v22 changelog (inoway46) #669845a5870066d] - doc: remove CI lockdown steps from security releases (Ulises Gascón) #6711624d18ef520] - doc: clarify that V8 major upgrade uses stable release (Joyee Cheung) #671061cb68c9730] - doc: note linear history rule on branch-off (Rafael Gonzaga) #670577a3c6c564a] - doc: remove outdated platform note for --watch-path (yuki motokane) #6674912a857a938] - doc: fix sqlite tagged template examples (Donghoon Kang) #669208570dfe348] - ffi: reject multi-argument buffer fast trampolines (Trivikram Kamat) #67046a1bdd2dbbd] - ffi: reject signature conflicts from getFunctions getters (Trivikram Kamat) #67194e64878bd2b] - ffi: support function calls from pointers (Damiano Mazzella) #66458730e55a0f7] - ffi: make Fast API functions collectable (Trivikram Kamat) #6717789db5c3e4c] - ffi: define function pointer property as own data property (Trivikram Kamat) #671707a24b2b9fc] - ffi: keep DynamicLibrary alive while callbacks are registered (Trivikram Kamat) #66842883c6a68f2] - ffi: reject arguments after callback in registerCallback (Trivikram Kamat) #669971f63811af7] - ffi: accept -0 for int32 and uint32 arguments (Trivikram Kamat) #6703578227c9a35] - ffi: free libuv error message on failed dlopen (Trivikram Kamat) #670070c5be929a5] - fs: keep readFile abortable on non-regular files (Christian Aurich Zanettini Martins) #66940b9cdb3dbab] - fs: resolve symlinks before parent components (Jason Zhang) #65457a30f200093] - fs: fix cpSync() abort when dest is a dangling symlink (Yohannes Desta) #671422d7c6c1983] - fs: fix readFileSync utf8 overflow on short reads (Christian Aurich Zanettini Martins) #6693994c0e06803] - fs: do not swallow exceptions thrown by completion callbacks (Marco) #66308b25b4960e0] - http: redact proxy credentials in invalid proxy URL errors (Matteo Collina) nodejs-private/node-private#10016c5b08e1fc] - http: never execute llhttp re-entrantly (Matteo Collina) nodejs-private/node-private#10216c9747ff7b] - http: emit 'drain' after flushing coalesced chunks (junyup0503) #667826b8a90d41d] - (SEMVER-MINOR) http: batch body spans per parser execute (Guilherme Araújo) #67187a947ae418e] - http2: retain streams during pending writes (Matteo Collina) nodejs-private/node-private#1040e766c3db0e] - http2: charge inbound DATA retained by streams to maxSessionMemory (Matteo Collina) nodejs-private/node-private#100046fd313a45] - http2: retain buffers until socket writes finish (Matteo Collina) nodejs-private/node-private#10170eebafb726] - http2: release headers when a stream is removed (Matteo Collina) nodejs-private/node-private#1026be2898b11f] - http2: avoid overflowing ALTSVC buffers (Matteo Collina) nodejs-private/node-private#1035e1ae779fec] - http2: preserve multiple content-encoding values (Yuya Inoue) #6718491a070d1d7] - http2: handle errors on compat push response streams (Matteo Collina) #670538d45d5b69e] - http2: exclude queued data from response memory checks (Yuya Inoue) #67114ed688a4662] - http2: release queued data memory on stream cancellation (Yuya Inoue) #671130002058aa2] - http2: clear the session timeout before marking it destroyed (Huang-404-Q) #6688669cca8726f] - https: isolate Agent TLS policy keys (Matteo Collina) nodejs-private/node-private#103670d664a745] - inspector: fix out-of-bounds read in ws frame decoding (nashit hayat) #646181cc7ddc89f] - lib: replace Kahan summation withMathSumPrecise(Livia Medeiros) #67222605b1f9c69] - lib: placevaluebeforedonein iterator results (Kevin Gibbons) #668376ad44ecc50] - meta: bump rtCamp/action-slack-notify from 2.4.0 to 2.4.1 (dependabot[bot]) #6719057ab9a4363] - meta: bump step-security/harden-runner from 2.21.1 to 2.22.3 (dependabot[bot]) #67191044da7e905] - meta: bump cachix/install-nix-action from 31.11.1 to 31.11.3 (dependabot[bot]) #670193f639bd72c] - meta: bump ossf/scorecard-action from 2.4.4 to 2.5.0 (dependabot[bot]) #670205889278d22] - meta: bump actions/setup-python from 7.0.0 to 7.1.0 (dependabot[bot]) #670215757587d8e] - meta: bump actions/setup-node from 7.0.0 to 7.1.0 (dependabot[bot]) #67032ed4fe08c01] - meta: bump actions/download-artifact from 8.0.1 to 8.0.2 (dependabot[bot]) #67018481145443e] - meta: bump actions/upload-artifact from 7.0.1 to 7.0.2 (dependabot[bot]) #67024dc4ef78fe3] - meta: bump github/codeql-action/init from 4.38.2 to 4.39.1 (dependabot[bot]) #670289b434b2f52] - module: avoid reparsing package.json in esm format detection (Gürgün Dayıoğlu) #669821eb7ba8575] - module: cache compiled WebAssembly modules in the compile cache (Guy Bedford) #661918cbc539c37] - net,tls: fix session reuse with provided sockets (Harjoth Khara) #64430f2c56a628f] - node-api: fix crash on TSFN finalization reentrance at shutdown (Chengzhong Wu) #659675e1dad2e15] - permission: do not leak denied descendants in recursive fs.watch (RafaelGSS) nodejs-private/node-private#967debf2daff1] - permission: prefer --permission over audit mode (Rafael Gonzaga) #67036236355a392] - querystring: precompute Latin-1 escapes (Roberto Bianchi) #66756ab9d401b4d] - quic: retain readers for readable streams (Dustin) #66407d51e377a61] - quic: fix crypto error classification (Efe Karasakal) #6696809718032b7] - quic: fix internal error code conversion (Efe Karasakal) #6696726a8d53b92] - sea: mount the SEA VFS in workers at layer 0 (Manjeet Singh) #672398ffcb3ee55] - (SEMVER-MINOR) sea: generate a compile cache for the VFS modules (Matteo Collina) #667681774391f3e] - sqlite: add ReadOptionalString helper (Guilherme Araújo) #670420b223c67ec] - sqlite: use 64-bit result APIs for UDF return values (Guilherme Araújo) #670899c381d00b3] - sqlite: cache the SQLTagStore constructor template (Guilherme Araújo) #66912c38a50365c] - sqlite: settle BackupJob through a single exit point (Guilherme Araújo) #669122ec332989b] - sqlite: use DeleteFnPtr for all SQLite handles (Guilherme Araújo) #669125bc98ec49d] - sqlite: track statements in the Statement constructor (Guilherme Araújo) #66912464ab31405] - src: do not enable the inspector during snapshot building (Joyee Cheung) #6715448428365fc] - src: make crypto backend checks explicit (Filip Skokan) #670569d86291e8b] - stream: trim webstreams sink wrappers and BYOB transfers (Matteo Collina) #6670258eb15cd6b] - stream: fix pipeTo assert when writer is released during microtask (Qingyu Wang) #63733c05a97a625] - stream: reject writes during WritableStream close (Matteo Collina) #67058101e729044] - stream: keep async context of fromWeb writes (Matteo Collina) #67055caa48a3302] - stream: keep async context of pipeTo watchers (Matteo Collina) #670526c7ff35f61] - test: fix X.509 generation with OpenSSL 4.1 FIPS (Filip Skokan) #67409b0251889a8] - test: update WPT for WebCryptoAPI to e87deca336 (Node.js GitHub Bot) #673307667a8fd5b] - test: deflake test-runner-mock-timers-scheduler (Yuya Inoue) #67296d6b8579deb] - test: deflake test-worker-eventlooputil (Matteo Collina) #67260030c9536ab] - test: skip readFileSync pipe test without proc io (Jay) #672427b5b6fb2a3] - test: fixtest-config-json-schemawith--openssl-use-def-ca-store(Antoine du Hamel) #672008163152f5d] - test: use experimental flags in wpt tests (Aviv Keller) #67258e858561f1a] - test: use valid PBKDF2 inputs in domain test (Filip Skokan) #672508ed89aad0b] - test: cover crypto digest and HMAC caches (Yagiz Nizipli) #67109a7569c8d1b] - test: extend http2 cancellation coverage (fatih) #6678404ffe27e00] - test: fix cluster dgram 1 test on macos (gegham1) #66986df0f575044] - test: convert forEach to for of test-buffer-inheritance file (Antonio Duran) #67121cbffa1a8d4] - test: replace for each with for of (Sergio Calderon) #67122ed3bb858bd] - test: use spawnSyncAndAssert in nested async stack overflow test (Antonio Duran) #671236a561240f9] - test: convert .forEach to for...of (Jan Peer Stöcklmair) #67124c89556683c] - test: convert .forEach to for...of in test-net-write-arguments.js (Emmanuel Florencio Trujillo) #671259e459f31c5] - test: convert for each to for of in test/parallel/test-net-server-close (Raymundo Lopez Santiago) #671272f799303ab] - test: use for...of in test-require-resolve-invalid-paths (Raul Garcia) #6712810d1485965] - test: deflake test-worker-message-port-transfer-filehandle-fd0 (Christian Aurich Zanettini Martins) #66980569ef753f4] - test: remove duplicatecommonimports (Livia Medeiros) #67088bdbe9862ba] - test: add test for concurrent first use of OpenSSL (Christian Aurich Zanettini Martins) #66966a04eeff08c] - test: use registerHooks() over module.register() (Geoffrey Booth) #67074b08c226c6a] - test: update test426-fixtures to fae1fa49815813088c433e8486e330e8d953a44 (Node.js GitHub Bot) #66815f1cb89b976] - tls: fix remotely reachable TLS server crash (Tim Perry) nodejs-private/node-private#10183fa5ee2923] - tls: disable resumption for mTLS with no session id context (Tim Perry) nodejs-private/node-private#10301ddeffb2f8] - tls: don't allow renegotiation or HRR to change SNI (Tim Perry) nodejs-private/node-private#10307686e25c3b] - tls: don't allow TLS resumption to change SNI (Tim Perry) nodejs-private/node-private#1030ed11b570d5] - tls: apply the CA of SNI contexts without a certificate (Matteo Collina) nodejs-private/node-private#102040764cfdbe] - tls: reject hostnames with forbidden code points (Matteo Collina) #67254754b3884c8] - tls: test the SPKI blocklist with a fixture key (Ulises Gascón) #6694922ba5857c6] - tls,http: prevent nested parser execution from empty writes (Matteo Collina) nodejs-private/node-private#1021524341e94f] - tools: restore FIPS testing with default OpenSSL (Filip Skokan) #672486b6745a6f0] - tools: aggregate Nix changes in a table (Antoine du Hamel) #67348ab1e78530c] - tools: update nixpkgs pins (Node.js GitHub Bot) #67334576eef4d80] - tools: use vendored trust store inshell.nix(Antoine du Hamel) #67318ace3168084] - tools: use ubuntu-latest for public lint-js-and-md jobs (Yuya Inoue) #66409edb6ab2fcc] - tools: warn when undici WPT report is missing (Filip Skokan) #672291686e8a99f] - tools: requirevaluebeforedonein iterator results (Kevin Gibbons) #66837ae76a8be70] - tools: bump the eslint group in /tools/eslint with 2 updates (dependabot[bot]) #67189ffac5539af] - tools: bump nixpkgs pins (Node.js GitHub Bot) #671732c2f6960dd] - tools: avoid rewriting same-version OpenSSL updates (Filip Skokan) #66999356b720a46] - tools: removenode.gypandnode.gypifromv8.nixrequisites (Antoine du Hamel) #669552f2d9c8d97] - tools: fix number comparison if Nix diff viewer (Antoine du Hamel) #66904ead445d544] - tools: bump the eslint group in /tools/eslint with 5 updates (dependabot[bot]) #670259b99178707] - tools: bump piscina from 5.2.0 to 5.3.2 in /tools/doc (dependabot[bot]) #670265b8a2e0937] - tools: bump undici from 6.28.0 to 6.29.1 in /tools/doc (dependabot[bot]) #67027b6e024af18] - tools: update gyp-next to 0.22.4 (Node.js GitHub Bot) #66988908e3cd6ca] - tools: do not lint GYP JS files (Antoine du Hamel) #669882632ab72f3] - typings: fix internal type resolution (Seongeun Lee) #665122e27c83dd2] - typings: share Sign and Verify handle methods (Seongeun Lee) #66499e2bf68811e] - url: use indexed appends in search params getAll (Roberto Bianchi) #66872555bcfbbae] - util: use internalhexSlicedirectly inutil.inspect()(Livia Medeiros) #66974ec1e1e32d8] - v8: support X509Certificate serialization (Filip Skokan) #67083dfb6dba9e3] - vfs: do not reuse the path of a loaded memfd image (Philipp Dunkel) #670686d44119d95] - vfs: placevaluebeforedonein iterator result (LiviaMedeiros) #6723176147a47c4] - vfs: forward the watchFile listener through RealFSProvider (Trivikram Kamat) #66224819d9fdce6] - watch: track all dependencies of an owner (Christian Aurich Zanettini Martins) #661392bbcfa0718] - (SEMVER-MINOR) worker: preload streams into startup snapshot (Matteo Collina) #66311d5a5280451] - zlib: handle params callback after destroy (Matteo Collina) nodejs-private/node-private#1037bf7bef4025] - zlib: avoid an extra empty zstd frame (Marco) #661610ddc6b787f] - zlib: restart format detection when resetting Unzip (Marco) #66169209fb77c48] - zlib: grow the output buffer of large async one-shot calls (Yagiz Nizipli) #6686386f2e27dff] - zlib: finish async convenience calls in one write (Yagiz Nizipli) #66863997d0d6990] - zlib: skip the stream in sync convenience calls without options (Yagiz Nizipli) #66864