Read the docs
TI-2026-48457 Aliases CVE-2026-68904GHSA-r2pf-9cw4-5j65

node-opcua: TCP Socket Leak (FIN-WAIT-2) via keepalive reconnection cycle - Resource Exhaustion

Priority LOW 31CWE-400Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
None
Attack complexity
High
Impact type
Denial of service
Confidentiality · integrity · availability
Low · Low · High
Fix status
Fixed

Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-400.

Summary

node-opcua is an OPC UA implementation for TypeScript and Node.js. From 2.0.0 until 2.170.0, node-opcua clients using the default keepSessionAlive setting can enter a repeated reconnection cycle when an OPC UA server's clock skew causes BadInvalidTimestamp responses. ClientSessionKeepAliveManager._ping_server treated the server-originated ServiceFault as a network outage and forced a transport reconnect, while ClientTCP_transport._on_ACK_response used socket.end() after failed HEL/ACK negotiation and could leave the connection in FIN-WAIT-2 when the peer did not close. Repetition at the keepAliveInterval accumulates file descriptors and memory until the client process or container can be terminated by resource exhaustion. This issue is fixed in version 2.170.0.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00443 38th percentileScored 2026-11-07
Fix Fixed node-opcua (node-opcua): 2.170.0node-opcua-transport (npm): 2.170.0+2 more products

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
No
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
node-opcuanode-opcua2.0.0 to before 2.170.02.170.0Patch availableCNA
—node-opcua-transport (npm)2.0.0 to before 2.170.02.170.0Patch availableGHSA-r2pf-9cw4-5j65
—node-opcua-client (npm)2.0.0 to before 2.170.02.170.0Patch availableGHSA-r2pf-9cw4-5j65
—node-opcua (npm)2.0.0 to before 2.170.02.170.0Patch availableGHSA-r2pf-9cw4-5j65
  • node-opcua Vendornode-opcua Affected 2.0.0 to before 2.170.0 Fixed in 2.170.0 Patch available CNA
  • node-opcua-transport (npm) Vendor— Affected 2.0.0 to before 2.170.0 Fixed in 2.170.0 Patch available GHSA-r2pf-9cw4-5j65
  • node-opcua-client (npm) Vendor— Affected 2.0.0 to before 2.170.0 Fixed in 2.170.0 Patch available GHSA-r2pf-9cw4-5j65
  • node-opcua (npm) Vendor— Affected 2.0.0 to before 2.170.0 Fixed in 2.170.0 Patch available GHSA-r2pf-9cw4-5j65

Remediation

  • Fix · CNA node-opcua (node-opcua) Fixed in 2.170.0
  • Fix · GHSA-r2pf-9cw4-5j65 node-opcua-transport (npm) Fixed in 2.170.0 Advisory →
  • Fix · GHSA-r2pf-9cw4-5j65 node-opcua-client (npm) Fixed in 2.170.0 Advisory →
  • Fix · GHSA-r2pf-9cw4-5j65 node-opcua (npm) Fixed in 2.170.0 Advisory →

Timeline

  1. 2026-10-02 Threatist record created from CVE-2026-68904
  2. 2026-10-03 Alias added: GHSA-r2pf-9cw4-5j65

References

  • TI-2026-84561 Authorization bypass in node-opcua lets anonymous clients write CVSS 3.1CRITICAL 9.1
  • TI-2026-48544 node-opcua: Prototype Pollution via internal `fieldsToJson()` implementation (Related to CVE-2024-57086) CVSS 3.1LOW 3.7
  • TI-2026-39066 node-opcua: Unbounded nonce cache enables unauthenticated heap exhaustion DoS CVSS 3.1HIGH 7.5
  • TI-2026-39065 node-opcua: Missing nonce verification in UserNameIdentityToken authentication CVSS 3.1HIGH 7.7

Sources