[ ⌘K ]
← BACK TO SEARCH

mifunedev/mcp-sse

critical

🔌🔄 Simple MCP Server Deployment

MCP server (purpose undetermined)

purpose: MCP server (purpose undetermined)threat: network exposed
Python4May 20, 2026May 20, 2026GITHUB
anthropicclaudecontainerdeepseekdockergeminilangchainlanggraphmcpmodelcontextprotocolngrokopenaisonnetubuntuvibecoding
5/20/2026
critical1 finding
main.py
22@mcp.tool()
23def shell_command(command: str) -> str:
24    """Execute a shell command"""
25    ctx = mcp.get_context()
26    middleware(ctx.request_context)
27    return tool_shell_command(command)
main.py:9src/utils/shell.py

// Network-exposed MCP server; any client can call this tool if authentication is missing or bypassed.

The shell_command tool accepts an arbitrary command string and executes it via tool_shell_command without any validation or sanitization. The middleware call appears to check an API key, but the tool is exposed over the network and the middleware implementation is not shown; if the key is missing or bypassed, any attacker can execute arbitrary shell commands.

ImpactAn attacker can execute arbitrary shell commands on the server, leading to full system compromise, data exfiltration, or lateral movement.

FixRemove the shell_command tool if not essential, or restrict it to a whitelist of allowed commands. Ensure the API key middleware is enforced and cannot be bypassed.

high1 finding
main.py
29@mcp.tool()
30def web_scrape(url: str) -> str:
31    """Scrape a web page"""
32    return retrieve_webpage(url)
main.py:8src/utils/scrape.py

// Network-exposed MCP server; any client can call this tool.

The web_scrape tool accepts an arbitrary URL and fetches it without validation. This allows an attacker to make the server request internal or external resources, potentially accessing internal services (e.g., cloud metadata endpoints) or performing SSRF attacks.

ImpactAn attacker can probe internal networks, access cloud instance metadata, or scan internal services, leading to information disclosure or further compromise.

FixValidate the URL against an allowlist of permitted domains, block private IP ranges, and restrict the protocol to HTTPS only.

medium1 finding
main.py
34@mcp.tool()
35def web_search(query: str, search_type: Literal["question", "context", None] = None) -> str:
36    """Search the web"""
37    result = Search().query(query, search_type)
38    return result
main.py:10src/utils/search.py

// Network-exposed MCP server; any client can call this tool.

The web_search tool accepts a query string without any validation or sanitization. While less severe than shell execution, it could be used to craft malicious search queries that exploit the underlying search API or cause unintended behavior.

ImpactAn attacker could potentially abuse the search functionality to perform injection attacks against the search backend or cause excessive resource usage.

FixValidate and sanitize the query input, implement rate limiting, and restrict search types to safe defaults.

env.exposureshell.exec
80
LLM-based
high findings+25
medium findings+15
critical findings+40