Gemiddeld · 4.7 Node.js & npm GHSA-r2pf-9cw4-5j65 CVE-2026-68904
node-opcua: kwetsbaarheid voor resource-uitputting via keepalive-herverbindingslus (CVE-2026-68904)
Een fout in de sessie-keepalive van node-opcua kan een eindeloze herverbindingslus veroorzaken wanneer klokverschil op de server leidt tot timestamp-fouten, met uitputting van file descriptors en geheugen als gevolg. Verholpen in versie 2.170.0.
AI-samenvatting
Er is een kwetsbaarheid vastgesteld in node-opcua, een OPC UA-implementatie voor TypeScript en Node.js, die zowel het hoofdpakket als de componenten node-opcua-transport en node-opcua-client treft. Het probleem, geregistreerd als CVE-2026-68904 (GHSA-r2pf-9cw4-5j65), kan ervoor zorgen dat getroffen clients onder bepaalde serveromstandigheden systeembronnen uitputten. Een oplossing is beschikbaar in versie 2.170.0.
Wat is er gebeurd
node-opcua-clients die de standaardinstelling keepSessionAlive gebruiken, kunnen in een herhaalde herverbindingslus terechtkomen wanneer ze verbonden zijn met een OPC UA-server die klokverschil vertoont. Dat klokverschil zorgt ervoor dat de server BadInvalidTimestamp-reacties stuurt, die de keepalive-logica van de client ten onrechte interpreteert als een netwerkstoring in plaats van een door de server veroorzaakte fout.
Technische oorzaak
De oorzaak ligt in de samenwerking tussen twee onderdelen. ClientSessionKeepAliveManager._ping_server behandelt een door de server veroorzaakte ServiceFault (het gevolg van de BadInvalidTimestamp-situatie) alsof het een netwerkstoring betreft, en forceert daardoor een herverbinding van de transportlaag. Daarnaast roept ClientTCP_transport._on_ACK_response socket.end() aan na een mislukte HEL/ACK-onderhandeling, waardoor de TCP-verbinding kan blijven hangen in de FIN-WAIT-2-status als de andere partij zijn kant niet sluit. Omdat deze reeks zich herhaalt bij elk ingesteld keepAliveInterval, stapelen file descriptors en geheugengebruik zich op.
Waarom dit belangrijk is
De classificatie is Uncontrolled Resource Consumption (CWE-400). Doordat sockets zich opstapelen in de FIN-WAIT-2-status en niet worden vrijgegeven, kan het clientproces of de omgeving waarin het draait uiteindelijk worden beëindigd door uitputting van resources. Dit kan leiden tot een denial of service voor toepassingen die voor OPC UA-connectiviteit afhankelijk zijn van node-opcua. De CVSS-vector beschrijft een lage impact op vertrouwelijkheid en integriteit, en een hoge impact op beschikbaarheid.
Wie wordt getroffen
Elke toepassing die de npm-pakketten node-opcua, node-opcua-transport of node-opcua-client gebruikt met de standaardinstelling keepSessionAlive, en die verbinding maakt met een OPC UA-server waarop klokverschil kan optreden dat BadInvalidTimestamp-reacties veroorzaakt, is mogelijk kwetsbaar.
Getroffen versies
Versies vanaf 2.0.0 tot (maar niet inclusief) 2.170.0 van node-opcua, node-opcua-transport en node-opcua-client zijn getroffen.
Oplossingen en mitigatie
Het probleem is verholpen in versie 2.170.0 van node-opcua, node-opcua-transport en node-opcua-client. In de beschikbare informatie wordt geen alternatieve mitigatie beschreven buiten het bijwerken naar deze versie.
Aanbevolen actie
Werk node-opcua en de bijbehorende pakketten (node-opcua-transport, node-opcua-client) bij naar versie 2.170.0 of hoger. Organisaties die niet direct kunnen updaten, doen er goed aan clientprocessen te controleren op een ongebruikelijke toename van open file descriptors of sockets die vastzitten in de FIN-WAIT-2-status, als indicator van dit probleem.
PatchBriefing-score
4.7 / 10 · Gemiddeld
Officiële CVSS: 7.0
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:H
Waarom deze score
Deze kwetsbaarheid heeft een CVSS-basisscore van 7,0 (AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:H), wat duidt op uitbuitbaarheid via het netwerk zonder authenticatie of gebruikersinteractie, zij het met een hoge aanvalscomplexiteit en vooral een hoge impact op beschikbaarheid. De berekende PatchBriefing-score van 4,7 weerspiegelt dat er geen bekende actieve uitbuiting of publiek exploitcode is, en dat er geen EPSS-gegevens beschikbaar zijn, terwijl wel rekening is gehouden met het feit dat geen authenticatie of interactie vereist is om de triggervoorwaarde te veroorzaken en dat er al een oplossing beschikbaar is.
Getroffen versies
- node-opcua >= 2.0.0, < 2.170.0
- kwetsbaar
- ≥ 2.170.0
- gepatcht
- node-opcua-transport >= 2.0.0, < 2.170.0
- kwetsbaar
- ≥ 2.170.0
- gepatcht
- node-opcua-client >= 2.0.0, < 2.170.0
- kwetsbaar
- ≥ 2.170.0
- gepatcht
Gemelde oplossingen
Het probleem is verholpen in versie 2.170.0 van node-opcua, node-opcua-transport en node-opcua-client. In de beschikbare informatie wordt geen alternatieve mitigatie beschreven buiten het bijwerken naar deze versie.
Hoe dit rapport is gemaakt
2 bronrecords zijn opgehaald, gekoppeld en gebruikt om het rapport hierboven op te stellen.
-
GitHub Advisory Database database
-
NVD (NIST) database
Revisiegeschiedenis
- Gepubliceerd
- Gegenereerd
Gerelateerd
Relevante veranderingen voor de stacks die je volgt.
Kies je stacks, onderwerpen en eventueel WordPress-plugins. Om 07:00 CEST worden passende meldingen en releases uit de rapportageperiode in één e-mail gegroepeerd.
✓ Kies stacks en onderwerpen✓ Pas voorkeuren altijd aan✓ Eén gebundelde e-mail