CVE-2026-18676 PUBLISHED

Kong Mesh: default control plane config leaks the admin token cross-origin via a CORS wildcard and localhost admin

Assigner: Kong
Reserved: 03.08.2026 Published: 12.08.2026 Updated: 13.08.2026

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.

Metrics

CVSS Vector: 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
CVSS Score: 5.1

Product Status

Vendor Kong Inc.
Product Kong Mesh
Versions Default: unaffected
  • affected from 0 to 2.7.25 (excl.)
  • affected from 2.8.0 to 2.9.15 (excl.)
  • affected from 2.10.0 to 2.11.13 (excl.)
  • affected from 2.12.0 to 2.12.10 (excl.)
  • affected from 2.13.0 to 2.13.5 (excl.)

Affected Configurations

You are affected if all of the following hold:

  • kuma-cp runs with default config (corsAllowedDomains: [".*"] and localhostIsAdmin: true).
  • 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.
  • The operator visits a page running attacker JavaScript while the control plane is reachable.

You are not affected if:

  • The control plane runs on a Kubernetes cluster accessed over ClusterIP, NodePort, or LoadBalancer from a remote client.
  • The control plane runs on an SSH-administered VM with no browser on the host.
  • KUMA_API_SERVER_AUTHN_LOCALHOST_IS_ADMIN=false is set.
  • KUMA_API_SERVER_CORS_ALLOWED_DOMAINS is set to an explicit allowlist that excludes attacker origins.

Workarounds

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.

Solutions

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.

Credits

  • eldudareeno finder

References

Problem Types

  • CWE-346 Origin Validation Error CWE
  • CWE-942 Permissive Cross-domain Policy with Untrusted Domain CWE

Impacts

  • Credential disclosure