← Back to all sparks
N

Node.js

DEVOPS
Velocity6.3

JavaScript runtime built on the V8 engine

Three release lines moving in lockstep, with the security train setting the pace.

runtimesecurityltscryptoobservabilitypermission-model
Current state
Node is maintaining three lines at once — 26.x Current, 24.x 'Krypton' LTS and 22.x 'Jod' LTS — and the window is dominated by a single coordinated security release on 29 July that shipped the same eleven CVEs to all three branches simultaneously. Three of those were rated High, and three of the eleven were in the permission model itself. Feature work continues on Current at roughly a two-week minor cadence, with 24.x absorbing the backports in large batches.
Where it's heading
Two things are visible across these releases. The crypto layer is being systematically rebuilt — OpenSSL 3, BoringSSL and legacy backends were split apart, FIPS handling for Argon2 was corrected, and key loading is moving to OpenSSL STORE loaders — which reads as preparation for supporting more than one TLS backend cleanly. Separately, the permission model has stopped being a side experiment and is now generating its own CVEs, which is what happens when a security feature starts being relied on. Observability is the third thread, with Perfetto being wired into the build and event-loop delay sampling moving per-iteration.
Prediction
Expect the crypto backend split to keep producing SEMVER-MINOR changes on Current as key handling migrates to STORE loaders, and expect the next 24.x LTS drop to be another large batch backport rather than a steady drip. Given three permission-model CVEs in one train, further hardening there is the most likely source of the next security release.

Recent moves

  1. 3d ago

    Node 26.7 adds Perfetto tracing and STORE-loader key support

    ⚡ SPARK

    Perfetto lands as a first-class tracing backend, alongside private key loading through OpenSSL STORE loaders, Symbol.dispose in ModuleHooks and coverage-include-all in the test runner. It advances both threads running through this window — the crypto rebuild and the observability push — in a single minor.

    View source ↗
  2. 6d ago

    FFI gains getCurrentEventLoop; test runner adds context.log()

    A smaller minor: an FFI handle onto the current event loop, plus context.log() and entryFile reporting in the test runner. The crypto commits continue the backend split — OpenSSL 3, BoringSSL and legacy paths were separated here — which is the quiet structural work underneath the feature list.

    View source ↗
  3. 6d ago

    Node 24 LTS batch-lands TLS compression and blob.textStream

    The largest LTS drop in the window, pulling a full quarter of Current-line work into Krypton at once: TLS certificate compression and negotiated TLS group reporting, blob.textStream(), --experimental-import-text, configurable HTTP header validation, TCP keepalive tuning and caller-supplied readFile buffers. This batch shape, rather than a steady drip, is how 24.x is being maintained.

    View source ↗
  4. 10d ago

    Node 24 LTS security release closes eleven CVEs

    The Krypton cut of the coordinated 29 July security train: eleven CVEs, three High, spanning http2 session accounting, the permission model, TLS session reuse, sqlite, dns and zlib. Identical content to the 26.x and 22.x releases published the same day.

    View source ↗
  5. 11d ago

    Node 26 Current takes the same eleven-CVE security train

    The Current-line cut of the same 29 July security release. The only branch-specific difference is the undici version pulled in (8.9.0 here, 7.29.0 on 24.x, 6.28.0 on 22.x) — the CVE set is the same fix set landing three times.

    View source ↗
  6. 11d ago

    Node 22 LTS closes the same eleven CVEs on the oldest line

    The Jod cut of the 29 July train, confirming that the oldest maintained LTS still gets the full fix set on the same day as Current. Worth noting the three permission-model CVEs reach back this far, since the feature has been shipping long enough to be depended on in production.

    View source ↗