Node.js 24 is LTS: Krypton runs to 2028, and here is what changes
Node.js 24 became LTS on October 28, 2025 under the codename Krypton, supported until April 2028. V8 13.6, npm 11, a stable permission model and require(esm) by default — plus the rough edges to know before upgrading.
Node.js 24 was released in May 2025 and moved to LTS on October 28, codenamed Krypton, supported until the end of April 2028. That means: from 24 onward, production has a baseline it can stay on for three years.
Why upgrade now
Node 18 reached end of life in April 2025, and Node 20 is in its maintenance tail. Staying on old versions does not just cost you features — it costs you security patches. The 24 LTS window runs to 2028, which for most projects is the least stressful place to be before the next big migration.
Three real changes
V8 13.6. A new engine brings language-level improvements and shifts the performance curve. If your service cares about startup time, re-measure cold starts after the upgrade.
npm 11. The major npm release shipped alongside 24 changes dependency resolution and install behaviour. If CI throws odd lockfile errors, check that the npm version matches the lockfile format before debugging anything else.
A stable permission model. --permission graduated from experimental, so you can restrict filesystem, child processes and network access. For “run someone else’s script” scenarios such as build plugins, it is a lighter constraint than a container.
Also, require(esm) is on by default: CommonJS can require an ES module directly, which makes migrating mixed-module projects noticeably easier.
Known rough edges
Early 24.x releases had a regression worth knowing: Buffer.allocUnsafe unintentionally returned zero-filled buffers. The documented contract is uninitialized memory, and zero-filling changes the behaviour (and the performance) of code that relies on it. The project said it would restore the documented behaviour in a later LTS release. Audit your Buffer.allocUnsafe call sites, especially hot paths.
Other things to watch: native modules need to be rebuilt against the new ABI; Docker base images should move to the node:24 line; and CI cache keys should include the Node version so old caches do not leak in.
Upgrade order
- Switch local and CI to 24 and run the full test suite;
- Watch startup time, memory and event-loop latency for a week;
- Roll out to production in batches;
- Finally, delete the compatibility code that only existed for older versions.
The judgement
The value of Node 24 is not new syntax — it is reopening the security-patch window. LTS is a three-year promise; the earlier you switch, the calmer the next migration gets.
Cover image: Node.js logo (Wikimedia Commons).

Comments
…