{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-18676","assignerOrgId":"02762ae7-200e-4b20-9b2b-a77d5b8fc4cb","state":"PUBLISHED","assignerShortName":"Kong","dateReserved":"2026-08-03T15:20:44.526Z","datePublished":"2026-08-12T18:42:38.843Z","dateUpdated":"2026-08-13T14:50:43.069Z"},"containers":{"cna":{"providerMetadata":{"orgId":"02762ae7-200e-4b20-9b2b-a77d5b8fc4cb","shortName":"Kong","dateUpdated":"2026-08-12T18:43:32.594Z"},"title":"Kong Mesh: default control plane config leaks the admin token cross-origin via a CORS wildcard and localhost admin","problemTypes":[{"descriptions":[{"lang":"en","cweId":"CWE-346","description":"CWE-346 Origin Validation Error","type":"CWE"}]},{"descriptions":[{"lang":"en","cweId":"CWE-942","description":"CWE-942 Permissive Cross-domain Policy with Untrusted Domain","type":"CWE"}]}],"impacts":[{"descriptions":[{"lang":"en","value":"Credential disclosure"}]}],"affected":[{"vendor":"Kong Inc.","product":"Kong Mesh","platforms":["Linux"],"modules":["kuma-cp"],"versions":[{"status":"affected","version":"0","lessThan":"2.7.25","versionType":"semver"},{"status":"affected","version":"2.8.0","lessThan":"2.9.15","versionType":"semver"},{"status":"affected","version":"2.10.0","lessThan":"2.11.13","versionType":"semver"},{"status":"affected","version":"2.12.0","lessThan":"2.12.10","versionType":"semver"},{"status":"affected","version":"2.13.0","lessThan":"2.13.5","versionType":"semver"}],"defaultStatus":"unaffected"}],"descriptions":[{"lang":"en","value":"The default kuma-cp configuration in Kong Mesh reveals the admin bootstrap token and signing keys to any webpage the operator visits while the control plane is reachable from their browser. Due to a CORS misconfiguration a cross-origin fetch() from a malicious page returns the admin JWT and signing material.","supportingMedia":[{"type":"text/html","base64":false,"value":"<p>The default <code>kuma-cp</code> configuration in Kong Mesh reveals the admin bootstrap token and signing keys to any webpage the operator visits while the control plane is reachable from their browser.&nbsp;Due to a CORS misconfiguration a cross-origin <code>fetch()</code> from a malicious page returns the admin JWT and signing material.</p>"}]}],"references":[{"url":"https://github.com/kumahq/kuma/security/advisories/GHSA-3vcp-chfh-f6r2","name":"Upstream advisory GHSA-3vcp-chfh-f6r2","tags":["vendor-advisory"]},{"url":"https://github.com/kumahq/kuma/pull/16416","name":"kumahq/kuma#16416 (master)","tags":["patch"]},{"url":"https://github.com/kumahq/kuma/pull/16423","name":"kumahq/kuma#16423 (backport)","tags":["patch"]},{"url":"https://github.com/kumahq/kuma/pull/16424","name":"kumahq/kuma#16424 (backport)","tags":["patch"]},{"url":"https://github.com/kumahq/kuma/pull/16425","name":"kumahq/kuma#16425 (backport)","tags":["patch"]},{"url":"https://github.com/kumahq/kuma/pull/16426","name":"kumahq/kuma#16426 (backport)","tags":["patch"]},{"url":"https://github.com/kumahq/kuma/pull/16427","name":"kumahq/kuma#16427 (backport)","tags":["patch"]},{"url":"https://developer.konghq.com/mesh/changelog/","name":"Kong MESH Changelog","tags":["release-notes"]}],"metrics":[{"format":"CVSS","scenarios":[{"lang":"en","value":"GENERAL"}],"cvssV4_0":{"attackVector":"NETWORK","attackComplexity":"LOW","attackRequirements":"NONE","privilegesRequired":"NONE","userInteraction":"ACTIVE","vulnConfidentialityImpact":"LOW","subConfidentialityImpact":"NONE","vulnIntegrityImpact":"LOW","subIntegrityImpact":"NONE","vulnAvailabilityImpact":"NONE","subAvailabilityImpact":"NONE","exploitMaturity":"NOT_DEFINED","Safety":"NOT_DEFINED","Automatable":"NOT_DEFINED","Recovery":"NOT_DEFINED","valueDensity":"NOT_DEFINED","vulnerabilityResponseEffort":"NOT_DEFINED","providerUrgency":"NOT_DEFINED","version":"4.0","baseSeverity":"MEDIUM","baseScore":5.1,"vectorString":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N"}}],"configurations":[{"lang":"en","value":"You are affected if all of the following hold:\n\n  *  kuma-cp runs with default config (corsAllowedDomains: [\".*\"] and localhostIsAdmin: true).\n  *  The control plane is reachable from a browser on the same machine: kuma-cp run on a developer laptop, Docker with host networking or a published port on a workstation, or kubectl port-forward from a machine that also browses the web.\n  *  The operator visits a page running attacker JavaScript while the control plane is reachable.\n\n\n\n\nYou are not affected if:\n\n  *  The control plane runs on a Kubernetes cluster accessed over ClusterIP, NodePort, or LoadBalancer from a remote client.\n  *  The control plane runs on an SSH-administered VM with no browser on the host.\n  *  KUMA_API_SERVER_AUTHN_LOCALHOST_IS_ADMIN=false is set.\n  *  KUMA_API_SERVER_CORS_ALLOWED_DOMAINS is set to an explicit allowlist that excludes attacker origins.","supportingMedia":[{"type":"text/html","base64":false,"value":"<p>You are affected if all of the following hold:</p><ul><li><code>kuma-cp</code> runs with default config (<code>corsAllowedDomains: [&quot;.*&quot;]</code> and <code>localhostIsAdmin: true</code>).</li><li>The control plane is reachable from a browser on the same machine: <code>kuma-cp run</code> on a developer laptop, Docker with host networking or a published port on a workstation, or <code>kubectl port-forward</code> from a machine that also browses the web.</li><li>The operator visits a page running attacker JavaScript while the control plane is reachable.</li></ul><p>You are not affected if:</p><ul><li>The control plane runs on a Kubernetes cluster accessed over ClusterIP, NodePort, or LoadBalancer from a remote client.</li><li>The control plane runs on an SSH-administered VM with no browser on the host.</li><li><code>KUMA_API_SERVER_AUTHN_LOCALHOST_IS_ADMIN=false</code> is set.</li><li><code>KUMA_API_SERVER_CORS_ALLOWED_DOMAINS</code> is set to an explicit allowlist that excludes attacker origins.</li></ul>"}]}],"workarounds":[{"lang":"en","value":"Set KUMA_API_SERVER_AUTHN_LOCALHOST_IS_ADMIN=false after retrieving the admin token, set KUMA_API_SERVER_CORS_ALLOWED_DOMAINS to an explicit allowlist such as http://localhost:5681,http://127.0.0.1:5681, and do not run kuma-cp on a machine used to browse untrusted sites.","supportingMedia":[{"type":"text/html","base64":false,"value":"<p>Set <code>KUMA_API_SERVER_AUTHN_LOCALHOST_IS_ADMIN=false</code> after retrieving the admin token, set <code>KUMA_API_SERVER_CORS_ALLOWED_DOMAINS</code> to an explicit allowlist such as <code>http://localhost:5681,http://127.0.0.1:5681</code>, and do not run <code>kuma-cp</code> on a machine used to browse untrusted sites.</p>"}]}],"solutions":[{"lang":"en","value":"Upgrade to Kong Mesh 2.7.25, 2.9.15, 2.11.13, 2.12.10 or 2.13.5, whichever matches your release line. In patched versions the corsAllowedDomains default changed from [\".*\"] to [], making CORS opt-in, and localhostIsAdmin was hardened to require a direct loopback RemoteAddr and Host and to reject requests carrying proxy-hop headers (X-Forwarded-For), cross-site fetch metadata (Sec-Fetch-Site), or a non-localhost Origin. The 2.14 line shipped after the fix and was never affected.","supportingMedia":[{"type":"text/html","base64":false,"value":"<p>Upgrade to Kong Mesh 2.7.25, 2.9.15, 2.11.13, 2.12.10 or 2.13.5, whichever matches your release line. In patched versions the <code>corsAllowedDomains</code> default changed from <code>[&quot;.*&quot;]</code> to <code>[]</code>, making CORS opt-in, and <code>localhostIsAdmin</code> was hardened to require a direct loopback <code>RemoteAddr</code> and <code>Host</code> and to reject requests carrying proxy-hop headers (<code>X-Forwarded-For</code>), cross-site fetch metadata (<code>Sec-Fetch-Site</code>), or a non-localhost <code>Origin</code>. The 2.14 line shipped after the fix and was never affected.</p>"}]}],"timeline":[{"time":"2026-05-01T07:01:00.000Z","lang":"en","value":"Kong Mesh patched releases published"},{"time":"2026-05-09T06:15:00.000Z","lang":"en","value":"Upstream advisory GHSA-3vcp-chfh-f6r2 published"}],"credits":[{"lang":"en","value":"eldudareeno","type":"finder"}],"source":{"discovery":"EXTERNAL"}},"adp":[{"metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-08-13T14:50:34.609630Z","id":"CVE-2026-18676","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"title":"CISA ADP Vulnrichment","providerMetadata":{"orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP","dateUpdated":"2026-08-13T14:50:43.069Z"}}]}}