ZeroHour

CVE-2026-84197

niche

MITM TLS certificate validation flaw in Eclipse Ditto Node.js JavaScript client

CVSS 4.0
9.2 critical
EPSS
<1%p10
Published
()
Modified
AI analysis

In Eclipse Ditto's Node.js JavaScript client, the WebSocket transport hard-codes rejectUnauthorized: false when creating the underlying ws WebSocket, so certificate chain and hostname validation are disabled for every wss:// connection and no builder option, constructor argument, or environment variable can turn validation back on. The flaw is triggered whenever an application using either affected npm package connects to a Ditto instance over wss:// while an attacker is positioned to intercept the traffic (CVSS 4.0 critical, 9.2, with attack requirements reflecting that intercepting position). The attacker can present an arbitrary certificate, complete the TLS handshake, read the credentials that the configured authentication provider sends in the Authorization header of the WebSocket upgrade request, and read, alter, or inject Ditto Protocol messages for the lifetime of the connection. Only the Node.js client's WebSocket transport is affected — the Java client, the browser/DOM JavaScript client, and the Node.js HTTP transport are unaffected. There is no known public PoC, the CVE is not in CISA KEV, and EPSS assigns roughly a 0.2% probability of exploitation within 30 days.

What to do: Audit whether any Node.js services use @eclipse-ditto/ditto-javascript-client-node or its _1.0 predecessor for wss:// connections; Java, browser/DOM, and HTTP transports need no action. Until Eclipse publishes a patched release (no fixed version is named in the current data), restrict the network path between affected applications and their Ditto instance to trusted links such as a VPN, private network, or controlled proxy, since the flaw cannot be disabled from application configuration. Watch the Eclipse advisory for a fixed version and upgrade promptly when it is available.

Affected
Eclipse @eclipse-ditto/ditto-javascript-client-node (Eclipse Ditto Node.js JavaScript client)all released versions from 2.0.0 through 3.9.0
Eclipse @eclipse-ditto/ditto-javascript-client-node_1.0 (predecessor Node.js client package)all released versions from 1.0.0 through 2.1.0
Estimated exposure
nicheunknown; plausibly on the order of hundreds to a few thousand integrator applications (no public npm download or install counts provided) — The affected packages are client SDKs for Eclipse Ditto, a specialized open-source IoT digital-twin platform whose Node.js client is embedded in integrator and backend applications rather than mass-deployed software, and the data provides…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

In Eclipse Ditto's Node.js JavaScript client, all released versions of @eclipse-ditto/ditto-javascript-client-node from 2.0.0 to 3.9.0 and of its predecessor package @eclipse-ditto/ditto-javascript-client-node_1.0 from 1.0.0 to 2.1.0, the WebSocket transport hard-codes rejectUnauthorized: false when creating the underlying ws WebSocket. Certificate chain and hostname validation are therefore disabled for every wss:// connection, and no builder option, constructor argument or environment variable lets an application turn validation back on. An attacker in a position to intercept the connection can present an arbitrary certificate, complete the TLS handshake, read the credentials that the configured authentication provider sends in the Authorization header of the WebSocket upgrade request, and read, alter or inject Ditto Protocol messages for the lifetime of the connection. The Java client, the browser/DOM JavaScript client and the HTTP transport of the Node.js client are not affected.

Weakness
CWE-295, CWE-297, CWE-300
Vector
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

In the news

No ingested article mentions this CVE yet.