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.
Published: 2026-09-02
Score: 7.6 High
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Eclipse Ditto builds a CreateThing command by inserting header values into a predefined JSON template without applying proper escaping. The placeholder engine does not escape double‑quote characters, so a header supplied by a publishing device can terminate the surrounding string and inject additional JSON objects. This creates a payload that the system parses as a policy object, enabling an attacker to override the configured policyId and assign any access‑control policy to a newly created digital twin. The flaw is rooted in improper handling of user input and concretely corresponds to CWE‑116 and CWE‑1336.

Affected Systems

All Eclipse Ditto instances running version 1.3.0 through 3.9.6 that use the ImplicitThingCreationMessageMapper for inbound connections. Vulnerable configurations include connections over MQTT 5, AMQP 1.0, or Kafka where the mapper template reflects a header that the device can control.

Risk and Exploitability

The CVSS score of 7.6 indicates a high severity. EPSS is not currently available, so explicit likelihood of exploitation cannot be quantified, but the vulnerability is not listed in the CISA KEV catalog. Exploitation requires a connection that uses the non‑default mapper, a template that incorporates an attacker‑controllable header, and existence of permission to create policies within that connection’s authorization subjects. If those conditions are met, an attacker can fully read and write the created twin and potentially revoke legitimate owners’ access—all without administrator involvement.

Generated by OpenCVE AI on September 2, 2026 at 12:58 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the latest Eclipse Ditto release that includes the CVE‑2026‑82958 fix according to the official advisory.
  • Reconfigure any connection that uses the ImplicitThingCreationMessageMapper to avoid reflecting controllable headers, or replace the mapper with a static template that does not incorporate external values.
  • Limit the authorization subjects of the affected connection to only "thing creation" via the entity‑creation configuration, removing the ability to create or modify policies from the connection.

Generated by OpenCVE AI on September 2, 2026 at 12:58 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 02 Sep 2026 13:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Wed, 02 Sep 2026 13:15:00 +0000

Type Values Removed Values Added
Title Policy Injection via Unescaped Header Values in Eclipse Ditto's ImplicitThingCreationMessageMapper

Wed, 02 Sep 2026 10:30:00 +0000

Type Values Removed Values Added
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.
Weaknesses CWE-116
CWE-1336
CWE-74
References
Metrics cvssV4_0

{'score': 7.6, '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'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: eclipse

Published:

Updated: 2026-09-02T12:53:05.342Z

Reserved: 2026-08-31T12:47:29.479Z

Link: CVE-2026-82958

cve-icon Vulnrichment

Updated: 2026-09-02T12:52:55.487Z

cve-icon NVD

Status : Received

Published: 2026-09-02T11:17:24.773

Modified: 2026-09-02T13:18:13.807

Link: CVE-2026-82958

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-02T13:00:13Z

Weaknesses
  • CWE-116

    Improper Encoding or Escaping of Output

  • CWE-1336

    Improper Neutralization of Special Elements Used in a Template Engine

  • CWE-74

    Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection')