Refine your search

1 vulnerability found for by Eclipse Ditto

CVE-2026-107503 (GCVE-0-2026-107503)
Vulnerability from cvelistv5
Published
2026-10-08 09:32
Modified
2026-10-15 13:09
CWE
  • CWE-15 - External control of system or configuration setting
  • CWE-346 - Origin Validation Error
  • CWE-522 - Insufficiently Protected Credentials
Summary
In Eclipse Ditto versions 3.6.0 to 3.8.13 and 3.9.0 to 3.9.7, the Ditto Explorer UI loads its complete environment configuration, including the Ditto API URI and the OpenID Connect (OIDC) provider settings, from an arbitrary cross-origin URL supplied in the environmentsURL query parameter. It adopts this configuration without user confirmation and persists it in the browser's localStorage. A crafted link can therefore set an attacker-controlled OIDC authority with autoSso enabled. The UI then automatically starts a login at the genuine identity provider but exchanges the returned authorization code together with its PKCE code_verifier at an attacker-controlled token endpoint. This lets the attacker redeem the code for the victim's access and refresh tokens. Alternatively, an attacker-controlled api_uri causes the UI to send the victim's bearer token or Basic credentials to the attacker. Because the configuration is persisted, later visits to the UI without the crafted link repeat the token theft. In versions 3.9.0 to 3.9.7, the Swagger UI OIDC integration of the Helm chart and the Docker Compose deployment is affected in the same way, but requires the user to start the login. The issue is fixed in 3.8.14 and 3.9.8.
Impacted products
Vendor Product Version
Eclipse Ditto Ditto Explorer UI Version: 3.6.0   ≤
Version: 3.9.0   ≤
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2026-107503",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-10-08T14:24:20.513382Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-10-08T14:27:38.370Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Ditto Explorer UI",
          "repo": "https://github.com/eclipse-ditto/ditto",
          "vendor": "Eclipse Ditto",
          "versions": [
            {
              "lessThan": "3.8.14",
              "status": "affected",
              "version": "3.6.0",
              "versionType": "semver"
            },
            {
              "lessThan": "3.9.8",
              "status": "affected",
              "version": "3.9.0",
              "versionType": "semver"
            }
          ]
        }
      ],
      "credits": [
        {
          "lang": "en",
          "type": "finder",
          "value": "IAmNobodyAnyway"
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "In Eclipse Ditto versions 3.6.0 to 3.8.13 and 3.9.0 to 3.9.7, the Ditto Explorer UI loads its complete environment configuration, including the Ditto API URI and the OpenID Connect (OIDC) provider settings, from an arbitrary\ncross-origin URL supplied in the \u003ccode\u003eenvironmentsURL\u003c/code\u003e query parameter. It adopts this configuration without user confirmation and persists it in the browser\u0027s localStorage. A crafted link can therefore set an attacker-controlled OIDC\n\u003ccode\u003eauthority\u003c/code\u003e with \u003ccode\u003eautoSso\u003c/code\u003e enabled. The UI then automatically starts a login at the genuine identity provider but exchanges the returned authorization code together with its PKCE \u003ccode\u003ecode_verifier\u003c/code\u003e at an attacker-controlled token\nendpoint. This lets the attacker redeem the code for the victim\u0027s access and refresh tokens. Alternatively, an attacker-controlled \u003ccode\u003eapi_uri\u003c/code\u003e causes the UI to send the victim\u0027s bearer token or Basic credentials to the attacker. Because\nthe configuration is persisted, later visits to the UI without the crafted link repeat the token theft. In versions 3.9.0 to 3.9.7, the Swagger UI OIDC integration of the Helm chart and the Docker Compose deployment is affected in\nthe same way, but requires the user to start the login. The issue is fixed in 3.8.14 and 3.9.8."
            }
          ],
          "value": "In Eclipse Ditto versions 3.6.0 to 3.8.13 and 3.9.0 to 3.9.7, the Ditto Explorer UI loads its complete environment configuration, including the Ditto API URI and the OpenID Connect (OIDC) provider settings, from an arbitrary\ncross-origin URL supplied in the environmentsURL query parameter. It adopts this configuration without user confirmation and persists it in the browser\u0027s localStorage. A crafted link can therefore set an attacker-controlled OIDC\nauthority with autoSso enabled. The UI then automatically starts a login at the genuine identity provider but exchanges the returned authorization code together with its PKCE code_verifier at an attacker-controlled token\nendpoint. This lets the attacker redeem the code for the victim\u0027s access and refresh tokens. Alternatively, an attacker-controlled api_uri causes the UI to send the victim\u0027s bearer token or Basic credentials to the attacker. Because\nthe configuration is persisted, later visits to the UI without the crafted link repeat the token theft. In versions 3.9.0 to 3.9.7, the Swagger UI OIDC integration of the Helm chart and the Docker Compose deployment is affected in\nthe same way, but requires the user to start the login. The issue is fixed in 3.8.14 and 3.9.8."
        }
      ],
      "impacts": [
        {
          "capecId": "CAPEC-593",
          "descriptions": [
            {
              "lang": "en",
              "value": "CAPEC-593 Session Hijacking"
            }
          ]
        },
        {
          "capecId": "CAPEC-176",
          "descriptions": [
            {
              "lang": "en",
              "value": "CAPEC-176 Configuration/Environment Manipulation"
            }
          ]
        }
      ],
      "metrics": [
        {
          "cvssV4_0": {
            "Automatable": "NOT_DEFINED",
            "Recovery": "NOT_DEFINED",
            "Safety": "NOT_DEFINED",
            "attackComplexity": "LOW",
            "attackRequirements": "PRESENT",
            "attackVector": "NETWORK",
            "baseScore": 7.1,
            "baseSeverity": "HIGH",
            "exploitMaturity": "NOT_DEFINED",
            "privilegesRequired": "NONE",
            "providerUrgency": "NOT_DEFINED",
            "subAvailabilityImpact": "NONE",
            "subConfidentialityImpact": "HIGH",
            "subIntegrityImpact": "HIGH",
            "userInteraction": "ACTIVE",
            "valueDensity": "NOT_DEFINED",
            "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:H/VI:L/VA:N/SC:H/SI:H/SA:N",
            "version": "4.0",
            "vulnAvailabilityImpact": "NONE",
            "vulnConfidentialityImpact": "HIGH",
            "vulnIntegrityImpact": "LOW",
            "vulnerabilityResponseEffort": "NOT_DEFINED"
          },
          "format": "CVSS",
          "scenarios": [
            {
              "lang": "en",
              "value": "GENERAL"
            }
          ]
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-15",
              "description": "CWE-15 External control of system or configuration setting",
              "lang": "en",
              "type": "CWE"
            }
          ]
        },
        {
          "descriptions": [
            {
              "cweId": "CWE-346",
              "description": "CWE-346 Origin Validation Error",
              "lang": "en",
              "type": "CWE"
            }
          ]
        },
        {
          "descriptions": [
            {
              "cweId": "CWE-522",
              "description": "CWE-522 Insufficiently Protected Credentials",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-10-15T13:09:30.155Z",
        "orgId": "e51fbebd-6053-4e49-959f-1b94eeb69a2c",
        "shortName": "eclipse"
      },
      "references": [
        {
          "url": "https://gitlab.eclipse.org/security/cve-assignment/-/work_items/380"
        },
        {
          "url": "https://github.com/eclipse-ditto/ditto/security/advisories/GHSA-8767-g5qv-9jcf"
        },
        {
          "url": "https://gitlab.eclipse.org/security/vulnerability-reports/-/work_items/1207"
        },
        {
          "url": "https://github.com/eclipse-ditto/ditto/commit/d4e51ba20e53c73e3b24e64d4aca57f6079d9ca1"
        },
        {
          "url": "https://github.com/eclipse-ditto/ditto/commit/71061f0b01df596fad80fb24502eb1e852ea6909"
        },
        {
          "url": "https://github.com/eclipse-ditto/ditto/commit/ee65b8cd9b7219401dcac2c25b79adc8cee4a5ba"
        },
        {
          "url": "https://eclipse.dev/ditto/release_notes_398.html"
        },
        {
          "url": "https://eclipse.dev/ditto/release_notes_3814.html"
        }
      ],
      "source": {
        "discovery": "UNKNOWN"
      },
      "x_generator": {
        "engine": "Vulnogram 1.0.5"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "e51fbebd-6053-4e49-959f-1b94eeb69a2c",
    "assignerShortName": "eclipse",
    "cveId": "CVE-2026-107503",
    "datePublished": "2026-10-08T09:32:47.485Z",
    "dateReserved": "2026-10-08T09:09:18.594Z",
    "dateUpdated": "2026-10-15T13:09:30.155Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}