Skip to main content

Eclipse Ditto EUVDEUVD-2026-74162

| CVE-2026-84197 CRITICAL
Improper Certificate Validation (CWE-295)
2026-09-08 emo@eclipse.org GHSA-j7r5-6vmc-cmcc
9.2
CVSS 4.0 · Vendor: eclipse
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Gain man-in-the-middle position on wss:// path
  2. Delivery
    Present arbitrary TLS certificate
  3. Exploit
    Client skips validation, handshake completes
  4. Execution
    Capture Authorization-header credentials
  5. Impact
    Read/alter/inject Ditto Protocol messages

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V12 - Secure Communication Certificate validation
Exploitation Conditions

Exploitation requires the attacker to hold a man-in-the-middle position on the network path used by an application running the affected Node.js client (@eclipse-ditto/ditto-javascript-client-node) and using the WebSocket (wss://) transport - this is the AT:P attack requirement in the CVSS 4.0 vector. No authentication is needed (PR:N) and no user interaction (UI:N), and the weakness is active in default configurations with no way to opt out. Limiting factors: the target must use the WebSocket transport (the HTTP transport is unaffected), must connect over TLS/wss://, and the attacker must be able to intercept and proxy the TLS connection; the Java client and browser/DOM client are not vulnerable.

Impact

The vendor CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:L) scores 9.2, but the AT:P (Attack Requirements: Present) metric is the key qualifier - exploitation requires the attacker to already occupy a man-in-the-middle position on the network path, which is a meaningful barrier compared to a purely remote flaw. Given that prerequisite, impact is high: full disclosure of transmitted credentials and Ditto messages (VC:H) plus the ability to tamper with or inject protocol messages (VI:H). No EPSS score, no CISA KEV listing, and no public POC were provided, so there is no evidence of active or automatable exploitation; realistic risk is concentrated in scenarios with untrusted network segments (public Wi-Fi, cloud egress paths, compromised intermediaries) rather than opportunistic mass exploitation. This is a genuine priority for anyone shipping the Node.js client over hostile networks, but the MITM precondition means it is not a spray-and-pray internet-wide threat.

Exploit ScenarioDerived

An attacker who can intercept traffic on a network path between an application using the Node.js client and the Ditto backend (e.g. a rogue Wi-Fi access point or a compromised upstream router) presents a self-signed certificate for the wss:// endpoint. The client accepts it without complaint, so the attacker captures the credentials from the Authorization upgrade header and then transparently relays, modifies, or injects Ditto Protocol messages for the session. No public POC was provided, but the attack requires only a standard TLS-intercepting proxy.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 08, 2026

TLS certificate validation is disabled by default in the Node.js WebSocket client of Eclipse Ditto (@eclipse-ditto/ditto-javascript-client-node 2.0.0-3.9.0 and predecessor _1.0 package 1.0.0-2.1.0), which hard-codes rejectUnauthorized:false when opening every wss:// connection. A man-in-the-middle attacker can present any certificate, complete the handshake, steal the credentials sent in the WebSocket upgrade's Authorization header, and read, alter or inject Ditto Protocol messages for the connection's lifetime. No public exploit identified at time of analysis; a vendor fix is available and the Java client, browser/DOM client and the Node.js HTTP transport are unaffected.

RemediationAI

Vendor-released patch: upgrade @eclipse-ditto/ditto-javascript-client-node to 3.9.1 (from the 3.x line) or 3.8.1 (patched maintenance release), and migrate off the end-of-line predecessor package @eclipse-ditto/ditto-javascript-client-node_1.0 (1.0.0-2.1.0) onto a fixed 3.x release. Because the flaw is hard-coded and offers no runtime toggle, there is no configuration workaround within the library itself. Until upgrading, compensating controls are to avoid the WebSocket transport and use the unaffected HTTP transport where feasible, and to route wss:// traffic only over trusted paths - for example pinning the connection through a controlled VPN or private network segment, or terminating TLS at a trusted reverse proxy you control - accepting that these add operational complexity and do not restore hostname validation inside the client. Consult the advisory at https://gitlab.eclipse.org/security/vulnerability-reports/-/work_items/660.

Affected VersionsENISA

Eclipse Ditto 2.0.0 <3.8.1
Eclipse Ditto 1.0.0 ≤2.1.0
Eclipse Ditto 3.9.0 <3.9.1

Affected Packages

euvd eclipse_ditto fix: 3.8.1, 3.9.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Eclipse Ditto is an open-source IoT digital-twin framework; the affected component is its Node.js JavaScript client, which uses the popular 'ws' library for its WebSocket transport. The root cause is CWE-295 (Improper Certificate Validation): the transport constructor unconditionally passes rejectUnauthorized:false to the underlying ws socket, which turns off both certificate-chain verification and hostname verification for all TLS (wss://) connections. Critically, there is no builder option, constructor argument or environment variable to re-enable validation, so even security-aware operators cannot harden it without patching. Because Ditto clients typically carry an authentication provider that injects credentials into the Authorization header of the WebSocket HTTP upgrade request, disabling validation directly exposes those credentials to any interceptor.

Know when Node.js gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (eclipse) PRIMARY 9.2 CRITICAL
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
vuln.today AI 7.7 HIGH

AC:H because a man-in-the-middle position is required; PR:N/UI:N as no auth or interaction is needed; C:H and I:H for credential theft and message tampering, A:L for possible disruption.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:L
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (eclipse).

CVSS VectorVendor: eclipse

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Sep 08, 2026 - 21:20 EUVD
CVE Published
Sep 08, 2026 - 20:18 cve.org
CRITICAL 9.2

DescriptionCVE.org

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.

Executive ViewAI

Why It Matters

Eclipse Ditto's Node.js WebSocket client (versions 1.0.0-2.1.0 and 2.0.0-3.9.0) disables TLS certificate validation by default, enabling network-path attackers to intercept authorization credentials and manipulate IoT messages. Organizations using this client face credential compromise and potential unauthorized device control.

Business Impact: Severe
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 90% exploitable
Prevalence
Low
niche IoT digital-twin framework's Node.js client package
Data Quality
4 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
Very High
Technical Impact
Total

Priority Score

46
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +46
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0
CVE-2025-68613 HIGH POC
8.8 Dec 19

Remote code execution in n8n's workflow expression evaluation system allows an authenticated user with workflow creation

CVE-2024-41713 CRITICAL POC
9.1 Oct 21

A vulnerability in the NuPoint Unified Messaging (NPM) component of Mitel MiCollab through 9.8 SP1 FP2 (9.8.1.201) could

CVE-2024-55591 CRITICAL POC
9.8 Jan 14

FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote

CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2014-7205 CRITICAL POC
10.0 Oct 08

Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t

CVE-2025-59528 CRITICAL POC
10.0 Sep 22

Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete

CVE-2017-14849 HIGH POC
7.5 Sep 28

Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc

CVE-2017-5941 CRITICAL POC
9.8 Feb 09

An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2014-3744 HIGH POC
7.5 Oct 23

Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi

CVE-2014-9566 HIGH POC
7.5 Mar 10

Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin

CVE-2013-4660 MEDIUM POC
6.8 Jun 28

The JS-YAML module before 2.0.5 for Node.js parses input without properly considering the unsafe !!js/function tag, whic

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy