node/lib/internal
Matteo Collina 36e29bf400
tls: route callback exceptions through error handlers
Wrap pskCallback and ALPNCallback invocations in try-catch blocks
to route exceptions through owner.destroy() instead of letting them
become uncaught exceptions. This prevents remote attackers from
crashing TLS servers or causing resource exhaustion.

Fixes: https://hackerone.com/reports/3473882
PR-URL: https://github.com/nodejs-private/node-private/pull/782
Backport-PR-URL: https://github.com/nodejs/node/pull/61044
CVE-ID: CVE-2026-21637
Refs: https://github.com/nodejs/node/pull/57643
2026-02-04 15:32:53 +01:00
..
assert assert: use a set instead of an array for faster lookup 2026-01-19 19:19:27 +01:00
async_local_storage
bootstrap module: mark type stripping as stable 2025-11-18 15:29:15 +01:00
child_process child_process: treat ipc length header as unsigned uint32 2026-01-27 22:52:28 +01:00
cluster cluster: fix port reuse between cluster 2026-01-27 22:50:38 +01:00
console console: optimize single-string logging 2025-11-13 22:44:17 +01:00
crypto lib: backport _tls_common and _tls_wrap refactors 2026-02-04 15:32:52 +01:00
debugger lib: use FastBuffer for empty buffer allocation 2026-01-19 19:19:05 +01:00
dns
encoding lib: implement all 1-byte encodings in js 2026-01-19 19:19:31 +01:00
errors lib: add source map support for assert messages 2025-09-12 16:39:07 +02:00
events
fs fs: fix errorOnExist behavior for directory copy in fs.cp 2026-01-27 22:52:27 +01:00
http2 buffer: make methods work on Uint8Array instances 2026-01-27 22:52:31 +01:00
inspector inspector: inspect HTTP response body 2025-11-13 22:44:25 +01:00
legacy
main module: mark type stripping as stable 2025-11-18 15:29:15 +01:00
modules src: cache missing package.json files in the C++ package config cache 2026-01-27 22:52:30 +01:00
per_context perf_hooks: fix stack overflow error 2025-11-18 13:16:10 +01:00
perf perf_hooks: fix stack overflow error 2025-11-18 13:16:10 +01:00
process src,permission: add --allow-inspector ability 2025-12-05 14:28:35 +01:00
quic lib: add lint rules for reflective function calls 2026-01-20 14:17:34 +01:00
readline repl: fix pasting after moving the cursor to the left 2025-11-13 22:44:20 +01:00
repl repl: move completion logic to internal module 2026-02-04 15:32:52 +01:00
source_map lib: add source map support for assert messages 2025-09-12 16:39:07 +02:00
streams stream: export namespace object from internal end-of-stream module 2026-01-28 16:29:45 +01:00
test
test_runner test_runner: fix memory leaks in runner 2026-01-27 22:52:28 +01:00
tls tls: route callback exceptions through error handlers 2026-02-04 15:32:53 +01:00
util assert,util: fix deep comparison for sets and maps with mixed types 2026-01-27 22:52:26 +01:00
v8 src: fix timing of snapshot serialize callback 2025-11-07 18:11:39 +01:00
vm vm: make vm.Module.evaluate() conditionally synchronous 2025-11-07 18:11:33 +01:00
watch_mode
webstreams stream: export namespace object from internal end-of-stream module 2026-01-28 16:29:45 +01:00
worker lib: replace global SharedArrayBuffer constructor with bound method 2025-11-13 22:44:17 +01:00
abort_controller.js
assert.js
async_context_frame.js
async_hooks.js lib: remove redundant destroyHook checks 2025-11-07 18:11:13 +01:00
blob.js lib: fix typo in createBlobReaderStream 2025-11-07 18:11:39 +01:00
blocklist.js
buffer.js buffer: make methods work on Uint8Array instances 2026-01-27 22:52:31 +01:00
child_process.js
cli_table.js
constants.js
data_url.js
dgram.js
encoding.js lib: implement all 1-byte encodings in js 2026-01-19 19:19:31 +01:00
error_serdes.js
errors.js lib: fix TypeScript support check in jitless mode 2026-01-27 22:52:28 +01:00
event_target.js events: remove redundant todo 2026-01-27 22:52:28 +01:00
file.js
fixed_queue.js
freelist.js
freeze_intrinsics.js
heap_utils.js
histogram.js
http.js http: replace startsWith with strict equality 2025-11-13 22:44:15 +01:00
inspector_async_hook.js
inspector_network_tracking.js
js_stream_socket.js
linkedlist.js
locks.js
mime.js util: optimize toASCIILower function using V8s native toLowerCase 2026-01-19 19:19:30 +01:00
navigator.js
net.js
options.js
priority_queue.js lib: optimize priority queue 2025-10-06 16:27:09 +02:00
promise_hooks.js
querystring.js
README.md
repl.js
socket_list.js
socketaddress.js lib: enforce use of URLParse 2026-01-19 19:19:22 +01:00
stream_base_commons.js
timers.js lib: remove redundant destroyHook checks 2025-11-07 18:11:13 +01:00
trace_events_async_hooks.js
tty.js
url.js url: add fast path to getPathFromURL decoder 2026-01-19 19:19:31 +01:00
util.js lib: fix TypeScript support check in jitless mode 2026-01-27 22:52:28 +01:00
v8_prof_polyfill.js
v8_prof_processor.js
validators.js
vm.js
wasm_web_api.js
watchdog.js
webidl.js
webstorage.js
worker.js lib: replace global SharedArrayBuffer constructor with bound method 2025-11-13 22:44:17 +01:00

Internal Modules

The modules located in lib/internal directory are exclusively meant for internal usage within the Node.js core. They are not intended to be accessed via user modules require(). These modules may change at any point in time. Relying on these internal modules outside the core is not supported and can lead to unpredictable behavior.

In certain scenarios, accessing these internal modules for debugging or experimental purposes might be necessary. Node.js provides the --expose-internals flag to expose these modules to userland code. This flag only exists to assist Node.js maintainers with debugging internals. It is not meant for use outside the project.