Beveiligingsmelding · Hoog
Node.js: HTTP/2- en HTTPS-fouten laten clients servers crashen en gegevens van andere gebruikers lezen
· 4 minuten leestijd · Centoculus Security Team
Bekend sinds
Getroffen: Node.js 22.x vóór 22.23.5, 24.x vóór 24.22.3, 26.x vóór 26.13.1. Versies die end-of-life zijn, zoals 20.x en 25.x, zijn ook getroffen en krijgen geen fix.
Wat er is gebeurd
Op 11 november 2026 heeft het Node.js-project beveiligingsreleases gepubliceerd voor zijn drie ondersteunde releaselijnen. De verholpen versies zijn 22.23.5, 24.22.3 en 26.13.1. Ze verhelpen 16 kwetsbaarheden in Node.js zelf, waarvan zeven als hoog zijn beoordeeld. De releases werken ook de meegeleverde afhankelijkheden llhttp (22.x, 24.x, 26.x), undici (24.x, 26.x) en sqlite (22.x, 24.x) bij.
De belangrijkste problemen zitten in de servercode die Node.js zelf biedt voor HTTP/2, HTTPS en TLS:
- HTTP/2-servercrash (24.x en 26.x): elke niet-geauthenticeerde client kan ervoor zorgen dat het Node.js-proces stopt. De server hoeft alleen de standaard HTTP/2-configuratie te gebruiken en een handler te hebben die antwoordt voordat de requestbody volledig is ontvangen. Het project noemt dit gedrag typisch. De aanval werkt zowel over TLS als over onversleutelde verbindingen.
- HTTP/2-geheugenlekken (alle drie de lijnen): een server kan delen van zijn geheugen naar een client sturen, inclusief antwoorden die bedoeld zijn voor andere verbindingen. Vanaf 24.22.0 en 26.9.0 kan een client dit zelfstandig uitlokken. Bij 22.x en oudere 24.x- en 26.x-builds kan het gebeuren wanneer de server een stream halverwege een antwoord sluit, bijvoorbeeld na een idle-timeout.
- HTTPS-geheugenlekken (alle drie de lijnen): een niet-geauthenticeerde client kan volgens het project geheugen uit andere verbindingen lezen, "inclusief TLS-privésleutels en verzoeken van andere gebruikers". Hiervoor is een handler nodig die
res.flushHeaders()aanroept voordat de requestbody is afgerond en laterres.end()aanroept met data. Om het gelekte geheugen te lezen, heeft de aanvaller ook een route nodig die een requestbody teruggeeft of opslaat. - HTTP/2-uitputting van resources (alle drie de lijnen): een client kan elke standaard HTTP/2-server permanent geheugen en bestandsdescriptors laten vasthouden.
- HTTP/2-bestandsservering (24.x en 26.x): een client kan het servergeheugen beschadigen wanneer de server bestanden serveert met
stream.respondWithFile()ofstream.respondWithFD(). Op alle drie de lijnen kan het annuleren van zulke downloads de server ook laten crashen (beoordeeld als gemiddeld). - TLS-servercrash (24.x en 26.x): een client kan een TLS-server crashen die de hooks
SNICallback,OCSPRequest,newSessionofresumeSession, ofserver.addContext()gebruikt. - Omzeiling van TLS-clientcertificaten (alle drie de lijnen): sommige servers passen strengere regels voor clientcertificaten toe op bepaalde hostnamen. Op die servers kan een client die voor een andere hostnaam is goedgekeurd tijdens TLS 1.2-heronderhandeling overschakelen naar een strengere hostnaam zonder aan de regels daarvoor te voldoen.
Het advies meldt geen aanvallen waarbij deze fouten zijn gebruikt.
Wie is getroffen
- Servers met Node.js 22.x vóór 22.23.5, 24.x vóór 24.22.3 of 26.x vóór 26.13.1.
- Versies die end-of-life zijn, waaronder 20.x en 25.x, krijgen in deze release geen fix. Het project stelt dat zulke versies altijd getroffen zijn.
- De ernstige problemen aan serverzijde zijn alleen relevant waar een Node.js-proces zelf HTTP/2-, HTTPS- of TLS-verbindingen accepteert. Voorbeelden zijn de ingebouwde modules
node:http2,node:httpsofnode:tls, of frameworks die deze gebruiken om TLS of HTTP/2 af te handelen. - Gewone HTTP-servers gebouwd met
node:httpzijn niet getroffen door het HTTPS-geheugenlek. - De HTTP/2-crash betreft alleen de lijnen 24.x en 26.x, niet 22.x.
U bent veel minder blootgesteld als een reverse proxy zoals nginx, Apache, HAProxy of een load balancer TLS en HTTP/2 afhandelt en Node.js van die proxy alleen gewone HTTP/1.1-verzoeken ontvangt. U moet toch updaten, omdat de release ook andere fixes en afhankelijkheidsupdates bevat.
Wat u nu moet doen
- Zoek alle Node.js-installaties. Denk aan systeempakketten, versiebeheerders (nvm, n, Volta), Docker-images, CI-runners en hostingpanelen die een eigen Node.js meeleveren.
- Update naar de verholpen versie van uw lijn: 22.23.5, 24.22.3 of 26.13.1. Als u distributie- of leverancierspakketten gebruikt (bijvoorbeeld van NodeSource of uw Linux-distributie), installeer de update dan zodra uw pakketbron deze versies aanbiedt.
- Stap over van end-of-life-versies. Als u nog 20.x, 25.x of ouder draait, upgrade dan naar een ondersteunde lijn. Het advies noemt geen tijdelijke oplossing voor servers die niet kunnen updaten.
- Bouw containerimages opnieuw met een bijgewerkte Node.js-basisimage en deploy ze opnieuw. Alleen de host updaten verandert de Node.js binnen containers niet.
- Herstart alle Node.js-processen (systemd-units, PM2, Docker-containers enz.) zodat de nieuwe runtime wordt geladen. Controleer daarna of uw applicaties normaal reageren.
- Overweeg het vervangen van geheimen als u blootgesteld was. Het advies zegt niet of servers die voldeden aan de voorwaarden voor het HTTPS-geheugenlek TLS-sleutels of andere geheimen moeten vervangen. Als een van uw Node.js HTTPS-servers aan die voorwaarden voldeed en vanaf internet bereikbaar was, overweeg dan het vernieuwen van het TLS-certificaat en de sleutel.
Hoe u kunt controleren of u getroffen bent
- Voer
node -vuit op elke server en binnen elke container (docker exec <container> node -v). Versies lager dan 22.23.5, 24.22.3 of 26.13.1 binnen hun lijn, of een end-of-life-lijn zoals 20.x of 25.x, zijn getroffen. - Met PM2 tonen
pm2 listenpm2 show <app>welke Node.js-binary en -versie elke app gebruikt. - Controleer of uw applicaties HTTP/2 of TLS zelf in Node.js afhandelen door de code te doorzoeken op
http2.createSecureServer,http2.createServer,https.createServer,tls.createServer,respondWithFile,respondWithFD,SNICallbackenaddContext. - Controleer uw procesmanager en systeemlogboeken op onverwachte herstarts of crashes van Node.js. Herhaalde afbreuken van een HTTP/2-server kunnen wijzen op pogingen om de crash uit te lokken.
Bronnen
Meer artikelen
Beveiligingsmeldingen ·
Citrix NetScaler ADC en Gateway: kritieke geheugenfouten maken denial of service mogelijk (CVE-2026-120868)
Citrix heeft negen kritieke geheugenfouten in NetScaler ADC en NetScaler Gateway verholpen die tot denial of service kunnen leiden. CVE-2026-120868 raakt elke implementatie. Update naar 14.1-73.57, 13.1-64.39 of de overeenkomstige FIPS-builds.
Beveiligingsmeldingen ·
PostgreSQL CVE-2026-6460: databasegebruikers die objecten kunnen aanmaken, kunnen code op de server uitvoeren
PostgreSQL 18.7, 17.12, 16.16, 15.20 en 14.25 verhelpen CVE-2026-6460 en 51 andere kwetsbaarheden. Een databasegebruiker die objecten kan aanmaken, kan code uitvoeren als het besturingssysteemgebruikersaccount waaronder PostgreSQL draait. Werk de server en de C-extensies samen bij.
Beveiligingsmeldingen ·
Hosting-provider Mittwald aangevallen via MCP-server: beheerdiensten offline, klanten moeten controleren
Webhoster Mittwald werkt in noodmodus na een aanval via een MCP-server. De beheerdiensten voor klanten zijn uitgeschakeld. Klanten wordt geadviseerd alleen de officiële updates te volgen en hun accounts en websites alvast na te lopen.