CVE-2026-21637: Node.js TLS server crash when PSK, ALPN or SNI callbacks throw

High 7.5 EPSS 1.1% Node.js

Exceptions thrown synchronously inside TLS handshake callbacks bypass Node.js TLS error handling, so a remote client can crash a TLS server or leak file descriptors until it fails. The January 2026 fix covered pskCallback and ALPNCallback; the March 24, 2026 releases fixed the remaining SNICallback path under the same CVE ID and Node.js rated that High. Only TLS servers whose callbacks can throw on unexpected client input are affected; no known exploitation.

What do these terms mean? CVE · CVSS score · exploited (KEV) · EPSS · backported fix · all terms

What to do now

  1. Check whether you run Node.js and which version (commands below).
  2. Install the fixed version for your system: see “Patch it” below.
  3. Node.js never reloads its binary or libraries: restart every long-running node process after updating. systemd: sudo systemctl restart <app>.service. PM2: pm2 update (restarts the PM2 daemon and all apps on the new runtime), then pm2 save; with nvm, reinstall pm2 under the new version first (nvm install --reinstall-packages-from does this). Containers: rebuild the image and recreate the containers / roll out the pods; restarting an old container keeps the old Node.js. Confirm with node -v in the same environment the service uses.
  4. If you cannot patch today, apply the temporary mitigation below and patch as soon as possible.

Affected and fixed versions

Affected:

Fixed in:

Node.js lines affected: 20.x || 22.x || 24.x || 25.x; fixed in ^20.20.2 || ^22.22.2 || ^24.14.1 || ^25.8.2.

Am I affected?

node -v
dpkg -l nodejs 'libnode*' 2>/dev/null | grep ^ii      # Debian/Ubuntu
rpm -q nodejs nodejs22 nodejs24 2>/dev/null; dnf module list --enabled nodejs   # RHEL
apk info -v nodejs nodejs-current 2>/dev/null          # Alpine
docker run --rm <image> node -v                         # containers
grep -rnE "SNICallback|pskCallback|ALPNCallback" --include='*.js' --include='*.mjs' --include='*.ts' .   # TLS servers using these callbacks

Patch it

Use the commands for your system. Distribution packages often keep an older version number with the fix backported, so compare with the fixed package versions in the table below, not only with the upstream version.

Debian
sudo apt update
sudo apt install --only-upgrade nodejs
node -v
# Debian ships nodejs 18.x (bookworm) and 20.x (trixie) with backported fixes.
# Running 22/24/26 from NodeSource (deb.nodesource.com)? The same command installs the fixed upstream build.
Ubuntu
# Ubuntu has not published a nodejs fix for this CVE (tracker status needs-triage, 2026-11-03).
# See https://ubuntu.com/security/CVE-2026-21637. Use a fixed upstream build instead:
# If Node.js comes from the NodeSource repo (deb.nodesource.com), the fixed builds are there:
sudo apt update
sudo apt install --only-upgrade nodejs
node -v
RHEL, AlmaLinux, Rocky, Oracle
sudo dnf module list --enabled nodejs        # RHEL 8/9: which stream is enabled
sudo dnf upgrade --refresh 'nodejs*'
node -v
# Stream with no fix (or EOL nodejs:20)? switch to a fixed stream, e.g. nodejs:24 on RHEL 8/9:
sudo dnf module reset -y nodejs && sudo dnf module enable -y nodejs:24 && sudo dnf distro-sync -y 'nodejs*'
# RHEL 10 ships nodejs22 / nodejs24 as normal packages: sudo dnf install nodejs24
Fedora
sudo dnf upgrade --refresh nodejs22 nodejs24 (nodejsNN)
SUSE / openSUSE
sudo zypper refresh
sudo zypper update nodejs22 nodejs24
Amazon Linux
sudo dnf upgrade --releasever=latest nodejs22 nodejs24 (nodejsNN)
Arch Linux
sudo pacman -Syu
Alpine
apk update
apk upgrade nodejs          # main repo (22.x on 3.22, 24.x on 3.23/3.24)
apk upgrade nodejs-current  # community repo, if installed (26.x on 3.24)
node -v
FreeBSD
pkg update && pkg upgrade node (or node22/node24)
Docker images
# Move the FROM line to a fixed tag (or a moving major tag such as node:24-slim) and rebuild
#   FROM node:24.22.2-trixie-slim   (also: node:22.23.4-alpine, node:26.13.0-slim)
docker pull node:24.22.2-trixie-slim
docker build --pull -t myapp:patched .
docker run --rm myapp:patched node -v   # must be at least 22.22.2 / 24.14.1
docker compose up -d --force-recreate   # or redeploy / roll out the new image
Built from source
# nvm: install the newest patch release of your line and make it the default
nvm install 24 --reinstall-packages-from=current   # or 22 / 26
nvm alias default 24
node -v   # must be at least 22.22.2 / 24.14.1 (any current 22.x/24.x/26.x release)
# Official binaries (Linux x64); verify the checksum before installing
VER=v24.22.2   # current fixed releases: v22.23.4, v24.22.2, v26.13.0
curl -fsSLO https://nodejs.org/dist/$VER/node-$VER-linux-x64.tar.xz
curl -fsSLO https://nodejs.org/dist/$VER/SHASUMS256.txt
grep " node-$VER-linux-x64.tar.xz\$" SHASUMS256.txt | sha256sum -c -
sudo tar -xJf node-$VER-linux-x64.tar.xz -C /usr/local --strip-components=1
/usr/local/bin/node -v

General update steps for every system are on the Linux and Unix & BSD pages; after updating, see which services to restart.

Fix status in Linux distributions

ReleasePackageStatusFixed version / advisory
Debian 12nodejsfixed18.20.4+dfsg-1~deb12u2
Debian 13nodejsfixed20.19.2+dfsg-1+deb13u2
Debian testingnodejsfixed22.22.2+dfsg+~cs22.19.15-1
Red Hat Enterprise Linux 9nodejs:24-9070020260117213814.rhel9fixedRHSA-2026:2781
Red Hat Enterprise Linux 9nodejs:22-9070020260117213838.rhel9fixedRHSA-2026:2782
Red Hat Enterprise Linux 9nodejs:20-9070020260117213748.rhel9fixedRHSA-2026:2783
Red Hat Enterprise Linux 9nodejs:24-9070020260402152654.rhel9fixedRHSA-2026:7350
Red Hat Enterprise Linux 8nodejs:24-8100020260116121421.6d880403fixedRHSA-2026:2420
Red Hat Enterprise Linux 8nodejs:22-8100020260119091831.6d880403fixedRHSA-2026:2421
Red Hat Enterprise Linux 8nodejs:20-8100020260119100525.489197e6fixedRHSA-2026:2422
Red Hat Enterprise Linux 8nodejs:24-8100020260408131901.6d880403fixedRHSA-2026:7670
Red Hat Enterprise Linux 10nodejs24-1:24.13.0-1.el10_1fixedRHSA-2026:1842
Red Hat Enterprise Linux 10nodejs22-1:22.22.0-3.el10_1fixedRHSA-2026:1843
Red Hat Enterprise Linux 10nodejs24-1:24.14.1-2.el10_1fixedRHSA-2026:7675
Debian 12 (bookworm)nodejsfixed18.20.4+dfsg-1~deb12u2
Debian 13 (trixie)nodejsfixed20.19.2+dfsg-1+deb13u2 (DSA-6183-1)
RHEL 8 (nodejs:24 module)nodejsfixed1:24.14.1-2.module+el8.10.0+24190+49a46c75 (RHSA-2026:7670)
RHEL 9 (nodejs:24 module)nodejsfixed1:24.14.1-2.module+el9.7.0+24166+51c9666b (RHSA-2026:7350)
RHEL 10nodejs24fixed1:24.14.1-2.el10_1 (RHSA-2026:7675)
RHEL 8/9 nodejs:20 + nodejs:22, RHEL 10 nodejs22nodejsfixedRed Hat lists only the January (PSK/ALPN) fix: RHSA-2026:2422, 2421, 2783, 2782, 1843
Alpine 3.22nodejsfixed22.22.2-r0 (secdb)
Alpine 3.23nodejsfixed24.14.1-r0 (secdb)
Alpine 3.24nodejsfixed24.14.1-r0 (secdb)

From the Debian security tracker, Ubuntu CVE tracker and Red Hat Security Data API, refreshed every few hours.

If you cannot patch yet

Related vulnerabilities

Sources

Page generated automatically from official sources on 2026-11-03 18:05 UTC and reviewed by an editor. Always confirm with your vendor's advisory.