nodejs (18.20.4+dfsg-1~deb12u2) bookworm-security; urgency=medium
authorBastien Roucariès <rouca@debian.org>
Mon, 6 Apr 2026 14:18:52 +0000 (16:18 +0200)
committerBastien Roucariès <rouca@debian.org>
Mon, 6 Apr 2026 14:18:52 +0000 (16:18 +0200)
commit0984686bea60dadac793575847b31ec487300f0f
tree7014b5e6e22a6cd9a4a63952433a55d54258d09c
parent6f11c1aa5fdd972326258d2c1f8d037cf066a74b
parent279e9c01468cdbb97c36c2ba9d3308f27c3e8eac
parent4830738e5e04b677217b99a631dec54c87339873
parent56ee10b2db46be48e8a0e8d442dce6c2002540a6
nodejs (18.20.4+dfsg-1~deb12u2) bookworm-security; urgency=medium

  * Team upload
  * Fix CVE-2025-23085:
    A memory leak could occur when a remote peer abruptly closes
    the socket without sending a GOAWAY notification. Additionally,
    if an invalid header was detected by nghttp2, causing the
    connection to be terminated by the peer, the same leak was
    triggered. This flaw could lead to increased memory consumption
    and potential denial of service under certain conditions
    (Closes: #1094134)
  * Fix CVE-2025-23166:
    The C++ method SignTraits::DeriveBits() may incorrectly call
    ThrowException() based on user-supplied inputs when executing
    in a background thread, crashing the Node.js process.
    Such cryptographic operations are commonly applied to
    untrusted inputs. Thus, this mechanism potentially allows
    an adversary to remotely crash a Node.js runtime.
    (Closes: #1105832)
  * Fix CVE-2025-55131:
    A flaw in Node.js's buffer allocation logic can expose uninitialized
    memory when allocations are interrupted, when using the `vm` module
    with the timeout option. Under specific timing conditions, buffers
    allocated with `Buffer.alloc` and other `TypedArray` instances like
    `Uint8Array` may contain leftover data from previous operations,
    allowing in-process secrets like tokens or passwords to leak or
    causing data corruption. While exploitation typically requires precise
    timing or in-process code execution, it can become remotely
    exploitable when untrusted input influences workload and timeouts,
    leading to potential confidentiality and integrity impact.
  * Fix CVE-2025-59465:
    A malformed `HTTP/2 HEADERS` frame with oversized, invalid
    `HPACK` data can cause Node.js to crash by triggering an
    unhandled `TLSSocket` error `ECONNRESET`. Instead of safely
    closing the connection, the process crashes, enabling a remote
    denial of service. This primarily affects applications that
    do not attach explicit error handlers to secure sockets,
    for example: ``` server.on('secureConnection', socket =>
    { socket.on('error', err => { console.log(err) }) }) ```
  * Fix CVE-2025-59466:
    async_hooks would cause stack overflow
    exceptions to exit with code 7 (kExceptionInFatalExceptionHandler)
    instead of being catchable.
    When a stack overflow exception occurs during async_hooks callbacks
    (which use TryCatchScope::kFatal), detect the specific "Maximum call
    stack size exceeded" RangeError and re-throw it instead of immediately
    calling FatalException. This allows user code to catch the exception
    with try-catch blocks instead of requiring uncaughtException handlers.
  * Fix CVE-2025-23166:
    A flaw in Node.js TLS error handling allows remote attackers to crash
    or exhaust resources of a TLS server when `pskCallback` or
    `ALPNCallback` are in use. Synchronous exceptions thrown during these
    callbacks bypass standard TLS error handling paths (tlsClientError and
    error), causing either immediate process termination or silent file
    descriptor leaks that eventually lead to denial of service. Because
    these callbacks process attacker-controlled input during the TLS
    handshake, a remote client can repeatedly trigger the issue. This
    vulnerability affects TLS servers using PSK or ALPN callbacks across.
  * Fix CVE-2026-21710:
    A flaw in Node.js HTTP request handling causes an uncaught `TypeError`
    when a request is received with a header named `__proto__` and the
    application accesses `req.headersDistinct`. When this occurs,
    `dest["__proto__"]` resolves to `Object.prototype` rather than
    `undefined`, causing `.push()` to be called on a non-array. This
    exception is thrown synchronously inside a property getter and cannot
    be intercepted by `error` event listeners, meaning it cannot be
    handled without wrapping every `req.headersDistinct` access in a
    `try/catch`
  * Fix  CVE-2026-21713:
    A flaw in Node.js HMAC verification uses a non-constant-time
    comparison when validating user-provided signatures, potentially
    leaking timing information proportional to the number of matching
    bytes. Under certain threat models where high-resolution timing
    measurements are possible, this behavior could be exploited as a
    timing oracle to infer HMAC values. Node.js already provides
    timing-safe comparison primitives used elsewhere in the codebase,
    indicating this is an oversight rather than an intentional design
    decision.
  * Fix CVE-2026-21714:
    A memory leak occurs in Node.js HTTP/2 servers when a client sends
    WINDOW_UPDATE frames on stream 0 (connection-level) that cause the
    flow control window to exceed the maximum value of 2³¹-1. The server
    correctly sends a GOAWAY frame, but the Http2Session object is never
    cleaned up.

[dgit import unpatched nodejs 18.20.4+dfsg-1~deb12u2]
377 files changed:
ada/.clang-format
ada/.editorconfig
ada/.github/ISSUE_TEMPLATE/1-bug-report.yml
ada/.github/ISSUE_TEMPLATE/2-feature-request.yml
ada/.github/ISSUE_TEMPLATE/config.yml
ada/.github/dependabot.yml
ada/.github/workflows/alpine.yml
ada/.github/workflows/cifuzz.yml
ada/.github/workflows/codeql.yml
ada/.github/workflows/dependency-review.yml
ada/.github/workflows/documentation.yml
ada/.github/workflows/emscripten.yml
ada/.github/workflows/lint_and_format_check.yml
ada/.github/workflows/macos_install.yml
ada/.github/workflows/release-script-tests.yml
ada/.github/workflows/release_create.yml
ada/.github/workflows/release_prepare.yml
ada/.github/workflows/scorecard.yml
ada/.github/workflows/ubuntu-release.yml
ada/.github/workflows/ubuntu-s390x.yml
ada/.github/workflows/ubuntu-sanitized.yml
ada/.github/workflows/ubuntu-undef.yml
ada/.github/workflows/ubuntu.yml
ada/.github/workflows/ubuntu_install.yml
ada/.github/workflows/ubuntu_old.yml
ada/.github/workflows/ubuntu_pedantic.yml
ada/.github/workflows/visual_studio.yml
ada/.github/workflows/visual_studio_clang.yml
ada/.github/workflows/wpt-updater.yml
ada/.gitignore
ada/.python-version
ada/CMakeLists.txt
ada/Dockerfile
ada/LICENSE-APACHE
ada/LICENSE-MIT
ada/README.md
ada/SECURITY.md
ada/benchmarks/CMakeLists.txt
ada/benchmarks/bbc_bench.cpp
ada/benchmarks/bench.cpp
ada/benchmarks/bench_search_params.cpp
ada/benchmarks/benchmark_header.h
ada/benchmarks/benchmark_template.cpp
ada/benchmarks/competitors/servo-url/Cargo.lock
ada/benchmarks/competitors/servo-url/Cargo.toml
ada/benchmarks/competitors/servo-url/README.md
ada/benchmarks/competitors/servo-url/cbindgen.toml
ada/benchmarks/competitors/servo-url/lib.rs
ada/benchmarks/competitors/servo-url/servo_url.h
ada/benchmarks/model_bench.cpp
ada/benchmarks/percent_encode.cpp
ada/benchmarks/performancecounters/apple_arm_events.h
ada/benchmarks/performancecounters/event_counter.h
ada/benchmarks/performancecounters/linux-perf-events.h
ada/benchmarks/wpt_bench.cpp
ada/clang-format-ignore.txt
ada/cmake/CPM.cmake
ada/cmake/ada-config.cmake.in
ada/cmake/ada-flags.cmake
ada/cmake/add-cpp-test.cmake
ada/cmake/clang-format.cmake
ada/cmake/codecoverage.cmake
ada/docs/RELEASE.md
ada/docs/cli.md
ada/docs/doxygen/footer.html
ada/docs/doxygen/header.html
ada/doxygen
ada/fuzz/build.sh
ada/fuzz/parse.cc
ada/include/ada.h
ada/include/ada/ada_idna.h
ada/include/ada/ada_version.h
ada/include/ada/character_sets-inl.h
ada/include/ada/character_sets.h
ada/include/ada/checkers-inl.h
ada/include/ada/checkers.h
ada/include/ada/common_defs.h
ada/include/ada/encoding_type.h
ada/include/ada/expected.h
ada/include/ada/helpers.h
ada/include/ada/implementation.h
ada/include/ada/log.h
ada/include/ada/parser.h
ada/include/ada/scheme-inl.h
ada/include/ada/scheme.h
ada/include/ada/serializers.h
ada/include/ada/state.h
ada/include/ada/unicode-inl.h
ada/include/ada/unicode.h
ada/include/ada/url-inl.h
ada/include/ada/url.h
ada/include/ada/url_aggregator-inl.h
ada/include/ada/url_aggregator.h
ada/include/ada/url_base-inl.h
ada/include/ada/url_base.h
ada/include/ada/url_components.h
ada/include/ada/url_search_params-inl.h
ada/include/ada/url_search_params.h
ada/include/ada_c.h
ada/pyproject.toml
ada/singleheader/CMakeLists.txt
ada/singleheader/README.md
ada/singleheader/amalgamate.py
ada/singleheader/demo.c
ada/singleheader/demo.cpp
ada/src/CMakeLists.txt
ada/src/ada.cpp
ada/src/ada_c.cpp
ada/src/ada_idna.cpp
ada/src/checkers.cpp
ada/src/helpers.cpp
ada/src/implementation.cpp
ada/src/parser.cpp
ada/src/serializers.cpp
ada/src/unicode.cpp
ada/src/url-getters.cpp
ada/src/url-setters.cpp
ada/src/url.cpp
ada/src/url_aggregator.cpp
ada/src/url_components.cpp
ada/tests/CMakeLists.txt
ada/tests/ada_c.cpp
ada/tests/basic_fuzzer.cpp
ada/tests/basic_tests.cpp
ada/tests/from_file_tests.cpp
ada/tests/installation/CMakeLists.txt
ada/tests/url_components.cpp
ada/tests/url_search_params.cpp
ada/tests/wasm/CMakeLists.txt
ada/tests/wasm/test.js.in
ada/tests/wasm/wasm.cpp
ada/tests/wpt/CMakeLists.txt
ada/tests/wpt/IdnaTestV2.json
ada/tests/wpt/ada_extra_setters_tests.json
ada/tests/wpt/ada_extra_urltestdata.json
ada/tests/wpt/ada_long_urltestdata.json
ada/tests/wpt/percent-encoding.json
ada/tests/wpt/setters_tests.json
ada/tests/wpt/toascii.json
ada/tests/wpt/urltestdata.json
ada/tests/wpt/verifydnslength_tests.json
ada/tests/wpt_tests.cpp
ada/tools/CMakeLists.txt
ada/tools/cli/CMakeLists.txt
ada/tools/cli/adaparse.cpp
ada/tools/cli/benchmark_adaparse.sh
ada/tools/cli/benchmark_write_to_file.sh
ada/tools/cli/line_iterator.h
ada/tools/lint_and_format.py
ada/tools/prepare-doxygen.sh
ada/tools/release/__init__.py
ada/tools/release/create_release.py
ada/tools/release/lib/__init__.py
ada/tools/release/lib/release.py
ada/tools/release/lib/tests/__init__.py
ada/tools/release/lib/tests/samples/ada_version_h.txt
ada/tools/release/lib/tests/samples/ada_version_h_expected.txt
ada/tools/release/lib/tests/samples/cmakelists.txt
ada/tools/release/lib/tests/samples/cmakelists_expected.txt
ada/tools/release/lib/tests/samples/doxygen.txt
ada/tools/release/lib/tests/samples/doxygen_expected.txt
ada/tools/release/lib/tests/test_release.py
ada/tools/release/lib/tests/test_update_versions.py
ada/tools/release/lib/versions.py
ada/tools/release/requirements.txt
ada/tools/release/update_versions.py
ada/tools/run-clangcldocker.sh
ada/tools/update-wpt.sh
debian/README.source
debian/changelog
debian/control
debian/copyright
debian/copyright_hints
debian/doc-generator/LICENSE
debian/doc-generator/README.md
debian/doc-generator/addon-verify.mjs
debian/doc-generator/allhtml.mjs
debian/doc-generator/alljson.mjs
debian/doc-generator/apilinks.mjs
debian/doc-generator/checkLinks.mjs
debian/doc-generator/common.mjs
debian/doc-generator/generate.mjs
debian/doc-generator/html.mjs
debian/doc-generator/json.mjs
debian/doc-generator/links-mapper.json
debian/doc-generator/markdown.mjs
debian/doc-generator/package-lock.json
debian/doc-generator/package.json
debian/doc-generator/type-parser.mjs
debian/doc-generator/versions.mjs
debian/gbp.conf
debian/libnode-dev.dirs
debian/libnode-dev.install
debian/libnode-dev.links.in
debian/libnode.install
debian/node
debian/nodejs-doc.doc-base
debian/nodejs-doc.docs
debian/nodejs.README.Debian
debian/nodejs.dirs
debian/nodejs.install.in
debian/nodejs.links
debian/nodejs.manpages
debian/nodejs.pm
debian/nodejs.postinst
debian/nodejs.prerm
debian/patches/CVE-2025-23085.patch
debian/patches/CVE-2025-23166.patch
debian/patches/CVE-2025-55131.patch
debian/patches/CVE-2025-59465.patch
debian/patches/CVE-2025-59466.patch
debian/patches/CVE-2026-21637.patch
debian/patches/CVE-2026-21637_post1.patch
debian/patches/CVE-2026-21710.patch
debian/patches/CVE-2026-21713.patch
debian/patches/CVE-2026-21714.patch
debian/patches/arm64/stacksize.patch
debian/patches/armel/configure.patch
debian/patches/build/ada.patch
debian/patches/build/cctest_disable.patch
debian/patches/build/disable_sea_dfsg_postject.patch
debian/patches/build/doc.patch
debian/patches/build/doc_template_home.html
debian/patches/build/flag_atomic.patch
debian/patches/build/getaddrinfo_no_iface.patch
debian/patches/build/icu72-test.patch
debian/patches/build/more_shareable_builtins.patch
debian/patches/build/openssl_3011_without_new_error_message.patch
debian/patches/build/openssl_3014.patch
debian/patches/build/openssl_config_explicit_lower.patch
debian/patches/build/shareable_builtins_PR44376.patch
debian/patches/build/skip-buffer-nan-internal-check.patch
debian/patches/build/test_ci.patch
debian/patches/build/test_process_versions.patch
debian/patches/build/test_runner_escape_path.patch
debian/patches/build/upstream_uv_test_socket_write_after_fin_error.patch
debian/patches/deps/cares.patch
debian/patches/deps/localhost-no-addrconfig.patch
debian/patches/deps/node_gyp.patch
debian/patches/dfsg/benchmark_without_alice.patch
debian/patches/dfsg/multilib_modules.patch
debian/patches/dfsg/privacy_breach.patch
debian/patches/libuv/0000-bookworm-sync.patch
debian/patches/libuv/disable_ipv6_test.patch
debian/patches/libuv/fix-cve-2024-24806
debian/patches/libuv/iovec_rw_fix.patch
debian/patches/libuv/path_max_zero_st_size
debian/patches/libuv/skip-multicast-test
debian/patches/libuv/sparc-skip-tcp_oob.diff
debian/patches/mips/compilation_error.patch
debian/patches/mips/flaky_tests.patch
debian/patches/mips/fpu.patch
debian/patches/mips/less_mem.patch
debian/patches/mips/lock_free_32.patch
debian/patches/mips/mipsel_even_register_fix.patch
debian/patches/mips/mipsel_is_32.patch
debian/patches/riscv/disable_failing_tests.patch
debian/patches/riscv/flaky_tests.patch
debian/patches/series
debian/rules
debian/salsa-ci.yml
debian/source/format
debian/source/lintian-overrides
debian/tests/control
debian/upstream/metadata
debian/watch
types-node/LICENSE
types-node/README.md
types-node/assert.d.ts
types-node/assert/strict.d.ts
types-node/async_hooks.d.ts
types-node/buffer.d.ts
types-node/child_process.d.ts
types-node/cluster.d.ts
types-node/console.d.ts
types-node/constants.d.ts
types-node/crypto.d.ts
types-node/dgram.d.ts
types-node/diagnostics_channel.d.ts
types-node/dns.d.ts
types-node/dns/promises.d.ts
types-node/dom-events.d.ts
types-node/domain.d.ts
types-node/events.d.ts
types-node/fs.d.ts
types-node/fs/promises.d.ts
types-node/globals.d.ts
types-node/globals.global.d.ts
types-node/http.d.ts
types-node/http2.d.ts
types-node/https.d.ts
types-node/index.d.ts
types-node/inspector.d.ts
types-node/module.d.ts
types-node/net.d.ts
types-node/os.d.ts
types-node/package.json
types-node/path.d.ts
types-node/perf_hooks.d.ts
types-node/process.d.ts
types-node/punycode.d.ts
types-node/querystring.d.ts
types-node/readline.d.ts
types-node/readline/promises.d.ts
types-node/repl.d.ts
types-node/stream.d.ts
types-node/stream/consumers.d.ts
types-node/stream/promises.d.ts
types-node/stream/web.d.ts
types-node/string_decoder.d.ts
types-node/test.d.ts
types-node/timers.d.ts
types-node/timers/promises.d.ts
types-node/tls.d.ts
types-node/trace_events.d.ts
types-node/ts4.8/assert.d.ts
types-node/ts4.8/assert/strict.d.ts
types-node/ts4.8/async_hooks.d.ts
types-node/ts4.8/buffer.d.ts
types-node/ts4.8/child_process.d.ts
types-node/ts4.8/cluster.d.ts
types-node/ts4.8/console.d.ts
types-node/ts4.8/constants.d.ts
types-node/ts4.8/crypto.d.ts
types-node/ts4.8/dgram.d.ts
types-node/ts4.8/diagnostics_channel.d.ts
types-node/ts4.8/dns.d.ts
types-node/ts4.8/dns/promises.d.ts
types-node/ts4.8/dom-events.d.ts
types-node/ts4.8/domain.d.ts
types-node/ts4.8/events.d.ts
types-node/ts4.8/fs.d.ts
types-node/ts4.8/fs/promises.d.ts
types-node/ts4.8/globals.d.ts
types-node/ts4.8/globals.global.d.ts
types-node/ts4.8/http.d.ts
types-node/ts4.8/http2.d.ts
types-node/ts4.8/https.d.ts
types-node/ts4.8/index.d.ts
types-node/ts4.8/inspector.d.ts
types-node/ts4.8/module.d.ts
types-node/ts4.8/net.d.ts
types-node/ts4.8/os.d.ts
types-node/ts4.8/path.d.ts
types-node/ts4.8/perf_hooks.d.ts
types-node/ts4.8/process.d.ts
types-node/ts4.8/punycode.d.ts
types-node/ts4.8/querystring.d.ts
types-node/ts4.8/readline.d.ts
types-node/ts4.8/readline/promises.d.ts
types-node/ts4.8/repl.d.ts
types-node/ts4.8/stream.d.ts
types-node/ts4.8/stream/consumers.d.ts
types-node/ts4.8/stream/promises.d.ts
types-node/ts4.8/stream/web.d.ts
types-node/ts4.8/string_decoder.d.ts
types-node/ts4.8/test.d.ts
types-node/ts4.8/timers.d.ts
types-node/ts4.8/timers/promises.d.ts
types-node/ts4.8/tls.d.ts
types-node/ts4.8/trace_events.d.ts
types-node/ts4.8/tty.d.ts
types-node/ts4.8/url.d.ts
types-node/ts4.8/util.d.ts
types-node/ts4.8/v8.d.ts
types-node/ts4.8/vm.d.ts
types-node/ts4.8/wasi.d.ts
types-node/ts4.8/worker_threads.d.ts
types-node/ts4.8/zlib.d.ts
types-node/tty.d.ts
types-node/url.d.ts
types-node/util.d.ts
types-node/v8.d.ts
types-node/vm.d.ts
types-node/wasi.d.ts
types-node/worker_threads.d.ts
types-node/zlib.d.ts