Repository navigation
chore(deps): update toolchain - #107
Merged
Merged
Conversation
renovate
Bot
force-pushed
the
renovate/toolchain
branch
from
October 16, 2026 02:58
f7d4ce0 to
df813a2
Compare
renovate
Bot
force-pushed
the
renovate/toolchain
branch
from
October 16, 2026 16:03
df813a2 to
0a7a811
Compare
renovate
Bot
force-pushed
the
renovate/toolchain
branch
from
October 17, 2026 06:04
0a7a811 to
990982f
Compare
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.
This PR contains the following updates:
29.1.1→29.1.226.10.0→26.12.0Release Notes
erlang/otp (erlang)
v29.1.2: OTP 29.1.2Compare Source
Check out the git tag OTP-29.1.2, and build a full OTP system including documentation. Apply one or more applications from this build as patches to your installation using the 'otp_patch_apply' tool. For information on install requirements, see descriptions for each application version below.
POTENTIAL INCOMPATIBILITIES
When the max_channels limit is reached for a port-forwarding channel (direct-tcpip or forwarded-tcpip), the SSH daemon now refuses the individual channel with SSH_MSG_CHANNEL_OPEN_FAILURE and keeps the connection alive, instead of terminating the whole SSH connection. Port-forwarding channels now behave like session channels, which already survived the limit, and this matches OpenSSH. Applications that relied on the connection being closed when the channel limit was reached must instead handle the channel-open failure.
Own Id: OTP-20420
Application(s): ssh
Related Id(s): PR-11708
compiler-10.0.7
The compiler-10.0.7 application can be applied independently of other applications on a full OTP 29 installation.
Fixed Bugs and Malfunctions
Fix native record bugs when used together with
try...catchOwn Id: OTP-20415
Related Id(s): GH-11691, PR-11719
Compilation of a function with thousands of clauses would be very slow.
Own Id: OTP-20437
Related Id(s): GH-11735, PR-11767
Sometimes compiling with
deterministicwould not guarantee generation of identical BEAM files for every build.Own Id: OTP-20438
Related Id(s): GH-11748, PR-11753
A crash in
sys_core_foldon native record patterns has been eliminated.Own Id: OTP-20440
Related Id(s): GH-11724, PR-11768
dialyzer-6.0.4
The dialyzer-6.0.4 application can be applied independently of other applications on a full OTP 29 installation.
Fixed Bugs and Malfunctions
Dialyzer will now avoid an infinite loop when multiple nominal types with the same structure are analyzed together.
Own Id: OTP-20444
Related Id(s): GH-11762, PR-11763
erts-17.1.1
The erts-17.1.1 application can be applied independently of other applications on a full OTP 29 installation.
Fixed Bugs and Malfunctions
Two trace sessions that trace
garbage_collectionon the same process crash the emulator on the first collection.trace_gc()inerl_trace.cbuilds the GC info list on a temporary heap for the first session and frees it inside the session loop. The next session reusesmsg, which now points into freed memory.The memory is now freed after the session loop, which removes the use-after-free.
Own Id: OTP-20385
Related Id(s): PR-11623
Fix native record bugs when used together with
try...catchOwn Id: OTP-20415
Related Id(s): GH-11691, PR-11719
inets-9.8.1
The inets-9.8.1 application can be applied independently of other applications on a full OTP 29 installation.
Fixed Bugs and Malfunctions
Credentials supplied in the userinfo component of a request URI (
http://user:password@host/path) were still sent to the redirect target whenhttpcfollowed a cross-origin redirect. The userinfo component is now cleared together with the sensitive headers whenever the redirect target differs in host or port from the original request. Redirects that stay within the same origin are unaffected and still carry the credentials.Own Id: OTP-20456
Related Id(s): GH-SA-m75x-4vwg-ggjh, PR-11825, CVE-2026-48856, OTP-20155
mnesia-4.27.1
The mnesia-4.27.1 application can be applied independently of other applications on a full OTP 29 installation.
Fixed Bugs and Malfunctions
Fixed the type specification for
mnesia:restore/2, which incorrectly listed the operationrestore_tablesinstead ofrecreate_tables, causing Dialyzer to reject valid calls and accept invalid ones.Own Id: OTP-20442
Related Id(s): PR-11755
odbc-2.17.2
The odbc-2.17.2 application can be applied independently of other applications on a full OTP 29 installation.
Fixed Bugs and Malfunctions
Fix error handling to avoid possible memory issues that could cause odbc port program to fail.
Own Id: OTP-20439
Related Id(s): PR-11808
public_key-1.21.8
The public_key-1.21.8 application can be applied independently of other applications on a full OTP 29 installation.
Fixed Bugs and Malfunctions
Enforce the RFC 5280 basic-constraints CA checks for X.509 version 1 and version 2 certificates during certificate path validation. A v1/v2 certificate carries no extensions and therefore no basicConstraints, so it must never be accepted as a CA; such a certificate is now rejected in issuer position with {bad_cert, missing_basic_constraint} while remaining valid as a leaf. This closes the version-1 path left uncovered by the earlier CVE-2026-42789 fix.
Own Id: OTP-20423
Related Id(s): PR-11727, CVE-2026-42789
snmp-5.20.6
The snmp-5.20.6 application can be applied independently of other applications on a full OTP 29 installation.
Fixed Bugs and Malfunctions
The SNMP agent no longer fails to answer an SNMPv3 message whose msgUserName matches the configured terminating-discovery trigger_username (by default the empty string) and whose msgAuthoritativeEngineID is the agent's own engine ID. Such a message is not a stage-1 discovery request, but the agent treated it as one and then failed while generating the report, logging a configuration error and discarding the request without responding. The agent now answers it with a usmStatsUnknownUserNames report, as prescribed by RFC 3414, section 3.2. As a consequence of the same change, a message carrying the trigger user name together with an unknown, non-empty engine ID is now answered with a usmStatsUnknownEngineIDs report instead of being silently discarded.
Own Id: OTP-20427
Related Id(s): ERIERL-1362, PR-11823
The byte-length bounds added in OTP-20346 for varbind values now apply to every integer field decoded by snmp_pdus: the v3 header fields msgID, msgMaxSize and msgSecurityModel, the USM security parameters msgAuthoritativeEngineBoots and msgAuthoritativeEngineTime, and the PDU fields request-id, error-status, error-index, non-repeaters, max-repetitions, generic-trap and specific-trap. Each field accepts at most the number of BER content octets that its type requires, instead of an arbitrary number of octets that were converted into a large integer. An over-long integer is now signalled with an exit rather than a throw. Code that calls the exported snmp_pdus decode functions inside a catch will receive {'EXIT', Reason} where it previously received the thrown term directly. Inside the agent and manager, such a message is now discarded and counted in snmpInASNParseErrs; previously it caused a case_clause failure during message processing.
Own Id: OTP-20428
Related Id(s): GH-SA-q7cq-pfgf-5hr7, PR-11824, OTP-20346
ssh-6.0.7
The ssh-6.0.7 application can be applied independently of other applications on a full OTP 29 installation.
Fixed Bugs and Malfunctions
Fixed a bug where SSH CLI sessions using {shell, {shell, start, []}} did not handle latin1-encoded put_chars messages from the Erlang shell. This caused exception output (e.g. "** exception error: ...") to not be displayed on the SSH client, and {unhandled_request, ...} messages to appear on the daemon host.
Own Id: OTP-20359
Related Id(s): PR-11474
Fixed the following bugs in the SSH application:
Own Id: OTP-20360
Related Id(s): PR-11561
Fixed an SSH port-forwarding acceptor crash triggered by a peer that connects and immediately resets the connection. Transient TCP errors from accept and peername are now handled gracefully instead of terminating the acceptor.
Own Id: OTP-20392
Related Id(s): PR-11720
When the max_channels limit is reached for a port-forwarding channel (direct-tcpip or forwarded-tcpip), the SSH daemon now refuses the individual channel with SSH_MSG_CHANNEL_OPEN_FAILURE and keeps the connection alive, instead of terminating the whole SSH connection. Port-forwarding channels now behave like session channels, which already survived the limit, and this matches OpenSSH. Applications that relied on the connection being closed when the channel limit was reached must instead handle the channel-open failure.
Own Id: OTP-20420
Related Id(s): PR-11708
*** POTENTIAL INCOMPATIBILITY ***
ssl-11.7.8
Note! The ssl-11.7.8 application cannot be applied independently of other applications on an arbitrary OTP 29 installation.
Fixed Bugs and Malfunctions
DoS attack prevention missed corner case, now fall back to the incomplete peer-only chain handling when paths/2 yields no path, restoring the OTP 28 behavior and matching OpenSSL, curl and browsers. The digraph and its chain-length limit from PR #11343 are unchanged, so the DoS protection is preserved; the extra cost is one trust-store lookup, as for a leaf-only chain.
Own Id: OTP-20394
Related Id(s): GH-11620, PR-11662
The equivalent options dh and dhfile where unintentionally ignored and the default value was used instead.
Own Id: OTP-20408
Related Id(s): ERIERL-1367, PR-11692
Redesign TLS-1.3 auto client ticket handling to adhere to RFC single-use by consuming a ticket when offered removing it from the client ticket store. This resolves unnecessary connections errors for concurrent client connections that previously could end up trying to use the same ticket, or tickets being evicted form the client store when a client still needed to look it up.
Own Id: OTP-20418
Related Id(s): GH-11702, GH-11709, PR-11707
Validate the handshake message type when decoding TLS-1.3 hello extensions (RFC 8446 / RFC 9846). A malicious or man-in-the-middle TLS-1.3 server could send a NewSessionTicket carrying a zero-length early_data extension, which a client with automatic session-ticket management (session_tickets => auto) stored and then crashed on during a later resumption, taking down the node-global client ticket store and disrupting TLS-1.3 resumption for the whole node. Extensions are now decoded only in the handshake messages in which they are permitted, so such a ticket is ignored instead of poisoning the store. This avoids a denial-of-service possibility.
Own Id: OTP-20426
Related Id(s): PR-11773, CVE-2026-94200
Fixed a TLS/DTLS session resumption flaw ((D)TLS-1.2 abbreviated handshake) where an SNI-aware server could resume a cached session even when the resumption request's server_name differed from the one that established the session, violating RFC 6066 §3. In virtual-hosting deployments where several SNI names share one server certificate but apply different client-authentication trust, a client could resume a session established under one SNI name while connecting under another — bypassing the second virtual service's client-authentication boundary and skipping the certificate exchange.
The server now binds the establishing SNI hostname to the session and refuses resumption (falling back to a full handshake) when the requested SNI differs. A request without SNI only matches a session established without SNI, so ordinary non-SNI resumption is unaffected.
As a related correction, a listener's derived reuse_sessions default (enabled under verify_none) is no longer carried into an SNI virtual service that switches to verify_peer; such a service must enable reuse_sessions explicitly.
Own Id: OTP-20445
Related Id(s): PR-11773, CVE-2026-105236
stdlib-8.1.1
The stdlib-8.1.1 application can be applied independently of other applications on a full OTP 29 installation.
Fixed Bugs and Malfunctions
A loop with Unreachable Exit Condition ('Infinite Loop') vulnerability in the
erl_tarmodule allowed an attacker who supplied a tar archive to cause a denial of service via a crafted GNU sparse member. This has been corrected.In addition, when attempting to extract a tar file with a legal GNU sparse member, extraction could fail with a
badargexception. That has also been corrected.Own Id: OTP-20447
Related Id(s): PR-11791, CVE-2026-96596
Thanks to
Alexey Aristov, Daniel Gorin, Marcelino Alberdi Pereira, Marko Mindek, Miguel Rubinos Rodríguez
nodejs/node (node)
v26.12.0: 2026-10-14, Version 26.12.0 (Current), @richardlauCompare Source
Notable Changes
1ebd6d3677] - (SEMVER-MINOR) doc,lib,src: throw on missing WebAssembly or RX support (Paolo Insogna) #665337f1937d2b9] - (SEMVER-MINOR) http: add websocketMask() and websocketUnmask() (James M Snell) #66335Commits
30e76bb16a] - benchmark: fix input passed to subtle.digest in webcrypto-digest (Rafael Gonzaga) #66608adef72223a] - benchmark: fix buffer option in buffer read/write benchmarks (Rafael Gonzaga) #666042f498f08fe] - benchmark: add util.parseArgs benchmark (Rafael Gonzaga) #665994ce8412e18] - benchmark: fix url-searchparams-sort to sort a fresh list (RafaelGSS) #66535493bd6c66e] - benchmark,tools: fix napi benchmarks on GHA (Nigro Simone) #66423e4515552d6] - build: run QUIC CI for V8 changes (Yuya Inoue) #66602a888e51062] - build: support Python 3.15 (Mike McCready) #657502afab9a63b] - build: do not include shared gtest innodelink path (Antoine du Hamel) #66626f88c2f8ec6] - build,test: enable temporal support on no-ICU and system-ICU builds (Antoine du Hamel) #666975fd03e6fdf] - child_process: propagate config-file permission flags to children (Rafael Gonzaga) #66559f771134b07] - crypto: isolate provider EC PKCS8 encoding (Filip Skokan) #664134e00a293db] - crypto: remove key export and metadata locks (Filip Skokan) #66413bcd8018775] - crypto: remove verify setup key locking (Filip Skokan) #66413883250fee2] - crypto: remove KEM key locking (Filip Skokan) #664139d98805071] - crypto: remove RSA-OAEP key locking (Filip Skokan) #66413d6293e7bb1] - crypto: skip secret key mutex allocation (Filip Skokan) #664138d8af8003e] - crypto: keep the root cert store per Environment (Shelley Vohr) #66411c6f0614785] - crypto: remove select Web Crypto warnings (Filip Skokan) #66312e5360b5a08] - deps: update googletest to988ea2c(Node.js GitHub Bot) #666527eb230a2c1] - deps: update acorn to 8.19.0 (Node.js GitHub Bot) #66655af946ba8f3] - deps: update sqlite to 3.54.0 (Node.js GitHub Bot) #66663007872a85d] - deps: V8: cherry-pick8d14d49(Antoine du Hamel) #66627f44aec4966] - deps: update simdjson to 5.0.3 (Daniel Lemire) #666201a33e914e8] - deps: V8: cherry-pick7d5eb1d(inoway46) #665663294d51e5a] - diagnostics_channel: fix default callback context (Matteo Collina) #664815c602a5824] - doc: list futimes among fd APIs disabled by the permission model (Rafael Gonzaga) #66649eaeb4736c8] - doc: add Test Runner to list of built-in diagnostic channels (Vas Sudanagunta) #665630e1c99afae] - doc: document stream/iter behaviors and Node.js extensions (James M Snell) #66483846236367d] - doc: document URL and Uint8Array references in process.permission (Rafael Gonzaga) #66557fc3b067be7] - doc: clarify http Agent keepSocketAlive behavior (Efe Karasakal) #6625273a4e90ce2] - doc: document keepAliveTimeoutBuffer server option (Efe Karasakal) #66286bb816582af] - doc: fix request.reusedSocket timeout example (Efe Karasakal) #6628682223ab4d9] - doc: clarify revert PR label policy (Antoine du Hamel) #66529c6f59d4e8e] - doc: clarify node binary misuse after compromise (Rafael Gonzaga) #665308904178498] - doc: document linux-x64-musl build toolchain (Issac) #665231e8247a74e] - doc: run license-builder (github-actions[bot]) #66517b2773d5e4c] - doc: add missing return types in cluster.md (Daniel Pinto) #664531ebd6d3677] - (SEMVER-MINOR) doc,lib,src: throw on missing WebAssembly or RX support (Paolo Insogna) #66533c1073f31de] - ffi: fix exportArrayBuffer type check (Trivikram Kamat) #6645569148ee0ff] - fs: lock FileHandle on first read in pull() and pullSync() (James M Snell) #66483700c60a1cd] - fs: serialize FileHandle writer() async writes (James M Snell) #6648332833def1c] - http: reduce raw header name allocations (Roberto Bianchi) #664887f1937d2b9] - (SEMVER-MINOR) http: add websocketMask() and websocketUnmask() (James M Snell) #66335115731dda7] - http2: speed up response getHeaders (Roberto Bianchi) #66592447c36cb45] - lib: fix AbortSignal.any() nested composite leak (Darius) #666171722ced4b4] - lib: add --allow-fs-vfs to permission available flags (Rafael Gonzaga) #66554062ece77fc] - lib: fix benchmark record acknowledgement race (Filip Skokan) #6643005d0b14438] - lib: set exit code on failed node:bench run() (RafaelGSS) #665342cab299471] - lib: default node:bench warmup to 10 invocations (RafaelGSS) #6653683f507845d] - meta: bump nodejs/node-pr-labeler todfe5eb3(Soul Lee) #666066fbffd5ee5] - meta: bump codecov/codecov-action from 7.1.0 to 7.1.1 (dependabot[bot]) #66448bd567f8bd6] - module: fix require of imports with package map (Lazizbek Ergashev) #66565c442f471a5] - module: synchronously load most ES modules (Geoffrey Booth) #6253051f66f0134] - permission: keep explicit fs grants when dropping a covering directory (Rafael Gonzaga) #665561aa10d80e2] - process: mark process.finalization as release candidate (Matteo Collina) #66436dd4715a6ba] - querystring: fix value decoding after encoded keys (Ved Chaudhari) #665539648a6ba8e] - quic: reject closed stream writer writes with a TypeError (James M Snell) #66483d6f566baf8] - quic: give each BindingData its own allocator state (Shelley Vohr) #66411c3204c15bd] - quic: validate session close error codes (Christian Aurich Zanettini Martins) #663025b87354f5a] - quic: destroy stream on invalid promise body (Christian Aurich Zanettini Martins) #662609ef698c781] - sqlite: validate aggregate() name and options (Guilherme Araújo) #66463bbf41f8cfb] - sqlite: persist enableDefensive() across reopen (Trivikram Kamat) #6640454867cd25e] - sqlite: throw on oversized strings instead of aborting (Trivikram Kamat) #665214314cde48b] - src: release uv_fs_t in permission WildcardIfDir (Rafael Gonzaga) #665550e58916f08] - src: stop including simdjson.h from env.h (Daniel Lemire) #6662006f56a55bb] - src: use native CopyArrayBufferBytes for webstream buffer copy (René) #664002e3dd5bb63] - src: fix config file handling (Marco Ippolito) #66431cd86506bc2] - src: mark config file as stable (Marco Ippolito) #6643115ff9884e4] - stream: skip idle webstreams start and watchers (Matteo Collina) #664243f75c89fb8] - stream: add pipeToSync() failOnIncompleteClose option (James M Snell) #664836cecf140e7] - stream: do not fail the writer when pipeToSync() cannot close (James M Snell) #6648316833534b6] - stream: fix fromSync() async input error messages (James M Snell) #66483af41622ad8] - stream: reject closed fromWritable() writes with a TypeError (James M Snell) #664834b83c6c38e] - stream: accept explicit stream/iter budgets below 16384 (James M Snell) #66483f302fbd04a] - stream: reduce per-chunk overhead in stream/iter consumers (James M Snell) #664837ba60dcdbe] - stream: keep the original error when writer.fail() throws (James M Snell) #66483dcac51a7db] - stream: align pull() abort handling with the spec (James M Snell) #66483995dee6b6b] - stream: honor stream/iter protocols on function objects (James M Snell) #664836eaf91353a] - stream: do not hold back nested async data in from() (James M Snell) #6648369d44aedb4] - stream: bound pre-batched async values in from() (James M Snell) #664836b1e7c4cf1] - stream: guard shareSync() against re-entrant source reads (James M Snell) #664838a47365425] - stream: split oversized share batches under drop-oldest (James M Snell) #6648330cbc4e643] - stream: reject drop-newest backpressure in shareSync() (James M Snell) #6648342ae08594e] - stream: detach shareSync consumers on strict budget errors (James M Snell) #66483fa49de9ba6] - stream: keep share buffer when all consumers detach (James M Snell) #66483e6662cb904] - stream: fix Utf8Stream flush handling (James M Snell) #6647393596b1a9e] - stream: add dump()/dumpSync() for stream/iter (Ethan Arrowood) #655984ba6ce1b0c] - stream: port remaining SonicBoom tests for Utf8Stream (Matteo Collina) #66275cd8b5fa5b0] - test: tolerate async block count updates in test-fs-stat-bigint (Rafael Gonzaga) #6657630814ce991] - test: replace discard loops with dump() (Ethan Arrowood) #6559820441b8fc0] - test: run node-bench tools test sequentially (Filip Skokan) #663389618da6fe3] - test: remove duplicated cases in permission fs-read fixture (Rafael Gonzaga) #66450c348a4cb46] - test: run instantiateStreaming-bad-imports WPT (Filip Skokan) #663227d4fda6ba7] - test: honor allowed WPT promise rejections (Filip Skokan) #66322d4c87eb086] - test: scope Blob WPT failures to big-endian (Filip Skokan) #663227309ddf204] - test_runner: rerun failing todo tests in suites (Barak) #66605da908b3072] - test_runner: report load errors with --test-isolation=none (Lazizbek Ergashev) #66550b18e121625] - test_runner: add mock call assertions to t.assert (Guilherme Araújo) #664763d691ab75e] - tools: restore Python 3.14 for daily WPT (Filip Skokan) #66699714aca1ef6] - tools: switch to PGP and SHA256 in ICU updater (Antoine du Hamel) #66469fa9fca45e4] - tools: lint thread_local in src (Shelley Vohr) #66411dbc3e97847] - tools: copy hdr_histogram_internal.h in update-histogram.sh (Filipe Oliveira (Redis)) #665284760c27904] - tools: bump the eslint group in /tools/eslint with 5 updates (dependabot[bot]) #6644563c20ee58e] - vfs: add ComposableProvider for layered mounts (Matteo Collina) #66235ab057989af] - watch: strip underscore aliases of watch flags (Trivikram Kamat) #66365Configuration
📅 Schedule: (in timezone Europe/Berlin)
* 0-6 * * 1)🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.