ZeroHour

CVE-2026-82958

niche

JSON Injection in Eclipse Ditto Lets Attackers Override Digital Twin Access Policies

CVSS 4.0
7.6 high
EPSS
<1%p15
Published
()
Modified
AI analysis

Eclipse Ditto's connectivity service contains a JSON injection flaw (CWE-74/CWE-116/CWE-1336) in its ImplicitThingCreationMessageMapper, which builds a CreateThing command by splicing inbound message-header values into a pre-configured JSON 'thing' template as raw, un-escaped strings before parsing. An attacker who can publish on a connection using this (non-default) mapper can supply a header value containing a double quote, breaking out of the JSON string and injecting an inline _policy object into the newly created digital twin. The injected policy overrides the administrator-configured policyId, giving the attacker full read/write access to the new twin and potentially revoking the legitimate owner's access, with no administrator interaction. Affected deployments are those where the ImplicitThingCreation mapper is configured, its template reflects an attacker-controllable header (such as an MQTT 5 user property, AMQP 1.0 application property, or Kafka record header), and the connection's authorization subjects are permitted to create policies (the default; deployments restricting subjects to thing creation only are not affected by the policy-override impact). There is no known public proof-of-concept, no CISA KEV listing, and EPSS is 0.2%, indicating no known exploitation at this time.

What to do: Upgrade Eclipse Ditto to 3.9.6 or later (the top of the published affected range). Until upgraded, audit connectivity configurations for use of the ImplicitThingCreation mapper and templates that reflect attacker-controllable headers, and restrict affected connections' authorization subjects to thing creation only (blocking policy creation) to eliminate the policy-override impact. Review recently created digital twins for unexpected inline _policy objects that override the administrator-configured policyId.

Affected
Eclipse Ditto1.3.0 through 3.9.6 (published affected range [1.3.0, 3.9.6])
Estimated exposure
nichelikely on the order of hundreds to low thousands of self-hosted instances — Eclipse Ditto is a niche open-source IoT digital-twin framework typically embedded in self-hosted industrial IoT platforms with no public install telemetry, and only deployments using the non-default ImplicitThingCreation mapper with…

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 versions [1.3.0, 3.9.6], the ImplicitThingCreationMessageMapper of the connectivity service builds a CreateThing command by substituting placeholder values (e.g. {{ header:device_id }}) resolved from inbound message headers into a pre-configured JSON "thing" template as raw, un-escaped strings, and then parses the resulting string as JSON. Because the placeholder engine performs no JSON escaping and is unaware of the surrounding JSON string context, a resolved value containing a double-quote character can break out of its string and inject additional JSON structure. When a connection is configured to use this mapper with a template that reflects a header whose value a publishing device can control (for example an MQTT 5 user property, an AMQP 1.0 application property, or a Kafka record header), an attacker able to publish on that connection can inject an inline _policy object. The inline policy overrides the administrator-configured policyId, letting the attacker assign an arbitrary access-control policy to the newly created digital twin — gaining full read/write access to it and potentially revoking the legitimate owner's access, with no administrator interaction. Exploitation requires all of the following: the connection uses the (non-default) ImplicitThingCreation mapper; its template reflects an attacker-controllable header; and, for the policy-override impact, the connection's authorization subjects are permitted to create policies (the default). Deployments that restrict the connection's subjects to thing creation only via the entity-creation configuration are not affected by the policy-override impact.

Weakness
CWE-74, CWE-116, CWE-1336
Vector
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/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.