CVE-2026-47250
Full vulnerability record from the local CVENow database.
Description
mcp-server-kubernetes is a Model Context Protocol server for Kubernetes cluster management. Prior to version 3.7.0, the kubectl_generic tool in mcp-server-kubernetes passes user-supplied flags directly to kubectl without any allowlist, enabling a privilege escalation attack within Kubernetes environments. An attacker who already has limited cluster or codebase access, for example, a developer with pod-deployment permissions but not cluster-admin credentials, can plant a single structured JSON line in an application's log output. When an operator with a privileged kubeconfig uses the MCP server to read those logs and their AI agent follows the injected instruction, kubectl_generic is called with --server=https://attacker.example.com and --insecure-skip-tls-verify=true. kubectl sends all API requests, including the Authorization: Bearer <token> header from the operator's kubeconfig to the attacker's endpoint. The captured token can then be replayed directly against the real Kubernetes API server, granting the attacker the full RBAC permissions of the operator's service account. This issue has been patched in version 3.7.0.
View original CVE JSON
{
"id": "CVE-2026-47250",
"sourceIdentifier": "[email protected]",
"published": "2026-06-11T19:16:46.770",
"lastModified": "2026-10-26T11:10:00.157",
"vulnStatus": "Deferred",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "mcp-server-kubernetes is a Model Context Protocol server for Kubernetes cluster management. Prior to version 3.7.0, the kubectl_generic tool in mcp-server-kubernetes passes user-supplied flags directly to kubectl without any allowlist, enabling a privilege escalation attack within Kubernetes environments. An attacker who already has limited cluster or codebase access, for example, a developer with pod-deployment permissions but not cluster-admin credentials, can plant a single structured JSON line in an application's log output. When an operator with a privileged kubeconfig uses the MCP server to read those logs and their AI agent follows the injected instruction, kubectl_generic is called with --server=https://attacker.example.com and --insecure-skip-tls-verify=true. kubectl sends all API requests, including the Authorization: Bearer <token> header from the operator's kubeconfig to the attacker's endpoint. The captured token can then be replayed directly against the real Kubernetes API server, granting the attacker the full RBAC permissions of the operator's service account. This issue has been patched in version 3.7.0."
},
{
"lang": "es",
"value": "mcp-server-kubernetes es un servidor de Protocolo de Contexto de Modelo para la gestión de clústeres de Kubernetes. Antes de la versión 3.7.0, la herramienta kubectl_generic en mcp-server-kubernetes pasa las banderas proporcionadas por el usuario directamente a kubectl sin ninguna lista de permitidos, lo que permite un ataque de escalada de privilegios dentro de entornos de Kubernetes. Un atacante que ya tiene acceso limitado al clúster o a la base de código, por ejemplo, un desarrollador con permisos de despliegue de pods pero sin credenciales de administrador de clúster, puede insertar una única línea JSON estructurada en la salida de registro de una aplicación. Cuando un operador con un kubeconfig privilegiado usa el servidor MCP para leer esos registros y su agente de IA sigue la instrucción inyectada, kubectl_generic es llamado con --server=https://attacker.example.com y --insecure-skip-tls-verify=true. kubectl envía todas las solicitudes de API, incluyendo el encabezado Authorization: Bearer [token] del kubeconfig del operador al punto final del atacante. El token capturado puede entonces ser reproducido directamente contra el servidor API real de Kubernetes, otorgando al atacante los permisos RBAC completos de la cuenta de servicio del operador. Este problema ha sido parcheado en la versión 3.7.0."
}
],
"affected": [
{
"source": "[email protected]",
"affectedData": [
{
"vendor": "Flux159",
"product": "mcp-server-kubernetes",
"versions": [
{
"version": "< 3.7.0",
"status": "affected"
}
]
}
]
}
],
"metrics": {
"cvssMetricV31": [
{
"source": "[email protected]",
"type": "Secondary",
"cvssData": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:N/A:N",
"baseScore": 6.1,
"baseSeverity": "MEDIUM",
"attackVector": "NETWORK",
"attackComplexity": "HIGH",
"privilegesRequired": "NONE",
"userInteraction": "REQUIRED",
"scope": "CHANGED",
"confidentialityImpact": "HIGH",
"integrityImpact": "NONE",
"availabilityImpact": "NONE"
},
"exploitabilityScore": 1.6,
"impactScore": 4.0
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"timestamp": "2026-06-11T19:35:22.766977Z",
"id": "CVE-2026-47250",
"options": [
{
"exploitation": "poc"
},
{
"automatable": "no"
},
{
"technicalImpact": "partial"
}
],
"role": "CISA Coordinator",
"version": "2.0.3"
}
}
]
},
"weaknesses": [
{
"source": "[email protected]",
"type": "Secondary",
"description": [
{
"lang": "en",
"value": "CWE-88"
}
]
}
],
"references": [
{
"url": "https://github.com/Flux159/mcp-server-kubernetes/releases/tag/v3.7.0",
"source": "[email protected]"
},
{
"url": "https://github.com/Flux159/mcp-server-kubernetes/security/advisories/GHSA-6mx4-4h42-r8vh",
"source": "[email protected]"
},
{
"url": "https://github.com/Flux159/mcp-server-kubernetes/security/advisories/GHSA-6mx4-4h42-r8vh",
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0"
}
]
}