CVE-2026-82958
nicheJSON Injection in Eclipse Ditto Lets Attackers Override Digital Twin Access Policies
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.
| Eclipse Ditto | 1.3.0 through 3.9.6 (published affected range [1.3.0, 3.9.6]) |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
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 news0 stories
No ingested article mentions this CVE yet.