{"id":"GHSA-wvmp-6r4v-j6cv","revision":"9e3036505f0c40be9a807c0bc9f9de86","records":[{"revision":"9e3036505f0c40be9a807c0bc9f9de86","observedAt":"2026-10-24T13:19:41.952+00:00","statement":{"source":"osv","id":"GHSA-wvmp-6r4v-j6cv","aliases":["CVE-2026-18679","CVE-2026-52724","GO-2026-6013"],"title":"kuma-dp connects to control plane without verifying TLS certificate when no CA is configured","description":"When kuma-dp is started against an HTTPS control plane and the operator did not pass a CA certificate, the data plane connects with TLS peer verification disabled. The dataplane authentication token is sent over this unverified connection\n\n## Impact\n\nAn on-path attacker can intercept the dataplane authentication token and impersonate the control plane to the data plane, allowing them to inject a forged bootstrap configuration and take over the proxy\n\n## Affected configurations\n\n- Universal mode `kuma-dp` started against an HTTPS control plane without `--ca-cert-file` (or `KUMA_CONTROL_PLANE_CA_CERT` unset)\n\n## Not affected\n\n- Kubernetes installs done through the standard installers (`kumactl install control-plane` or the official Helm chart). In both cases the control plane's mutating admission webhook injects `KUMA_CONTROL_PLANE_CA_CERT` into every sidecar at pod admission, so each `kuma-dp` starts with the CA already configured\n\n## Workarounds\n\nSet `--ca-cert-file` (or `KUMA_CONTROL_PLANE_CA_CERT`) on every Universal mode data plane and point it at the control plane's serving CA. Alternatively, terminate the control plane behind a publicly trusted certificate; the patched releases will verify successfully against the operating system trust store with no further configuration\n\n## Resources\n\n- Fix: https://github.com/kumahq/kuma/pull/16777","state":0,"publishedAt":"2026-07-16T20:09:12+00:00","modifiedAt":"2026-08-13T04:10:47.0704282+00:00","affected":[{"ecosystem":"Go","name":"github.com/kumahq/kuma/v2","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"0"},{"kind":"fixed","version":"2.7.26"}]}],"versions":[],"rawVersionEvidence":null},{"ecosystem":"Go","name":"github.com/kumahq/kuma/v2","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"2.8.0"},{"kind":"fixed","version":"2.9.16"}]}],"versions":[],"rawVersionEvidence":null},{"ecosystem":"Go","name":"github.com/kumahq/kuma/v2","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"2.10.0"},{"kind":"fixed","version":"2.11.14"}]}],"versions":[],"rawVersionEvidence":null},{"ecosystem":"Go","name":"github.com/kumahq/kuma/v2","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"2.12.0"},{"kind":"fixed","version":"2.12.11"}]}],"versions":[],"rawVersionEvidence":null},{"ecosystem":"Go","name":"github.com/kumahq/kuma/v2","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"2.13.0"},{"kind":"fixed","version":"2.13.7"}]}],"versions":[],"rawVersionEvidence":null},{"ecosystem":"Go","name":"github.com/kumahq/kuma","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"0"},{"kind":"last_affected","version":"1.8.1"}]}],"versions":[],"rawVersionEvidence":null}],"metrics":[{"system":"CVSS_V4","vector":"CVSS:4.0/AV:A/AC:H/AT:P/PR:N/UI:N/VC:N/VI:N/VA:N/SC:H/SI:H/SA:H","score":null,"severity":null},{"system":"Publisher rating","vector":null,"score":null,"severity":"MODERATE"}],"references":["https://github.com/kumahq/kuma/security/advisories/GHSA-wvmp-6r4v-j6cv","https://github.com/kumahq/kuma/pull/16777","https://github.com/kumahq/kuma/commit/2ecadac1aa2fd8cded4c2ab768949f4c2ec83e2a","https://github.com/kumahq/kuma"],"sourceUrl":"https://github.com/advisories/GHSA-wvmp-6r4v-j6cv","license":"GitHub Advisory Database · CC-BY-4.0","key":"osv:GHSA-wvmp-6r4v-j6cv","identifiers":["GHSA-wvmp-6r4v-j6cv","CVE-2026-18679","CVE-2026-52724","GO-2026-6013"]},"retained":false,"historicalAffected":[]}],"coverage":[]}