301 lines
15 KiB
JSON
301 lines
15 KiB
JSON
{
|
||
"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. 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: [".*"]</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>[".*"]</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"
|
||
}
|
||
}
|
||
]
|
||
}
|
||
} |