DVMS

Damn Vulnerable MCP Server -- A deliberately insecure MCP server for security testing

DO NOT deploy in production

This server contains intentional security vulnerabilities covering all 10 MCP attack categories. It is designed for security testing, education, and scanner validation only.

0
Total
0
Pass
0
Fail
0s
Time

Vulnerabilities

IDVulnerabilitySeverityOWASP MCP
MCP-001No authentication on any endpointCriticalMCP-07
MCP-002Tool definition tampering (rug pull)CriticalMCP-01
MCP-003Command injection via tool argumentsCriticalMCP-04
MCP-004No input validationHighMCP-04
MCP-005SSRF via resources/readCriticalMCP-06
MCP-006Data exfiltration (no response limits)HighMCP-06
MCP-007Replay attacks (no nonce/timestamp)HighMCP-08
MCP-008No rate limitingMediumMCP-09
MCP-009Privilege escalation via samplingCriticalMCP-03
MCP-010Sensitive tools exposedHighMCP-09

Tools Exposed

ToolRiskWhat it does
run_commandCriticalExecutes arbitrary shell commands
search_filesCriticalCommand injection via find pattern
fetch_urlCriticalSSRF -- fetches any URL server-side
read_fileCriticalReads any file (path traversal)
write_fileCriticalWrites to any file
query_databaseCriticalSQL injection vector
list_processesHighExposes running processes
get_env_varsCriticalLeaks all environment variables
admin_panelCriticalUnauthenticated admin access
get_weatherMediumSafe tool (rug pull target)

Test It

Initialize

curl -X POST {URL}/mcp -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"initialize","id":1,"params":{"clientInfo":{"name":"test"}}}'

List Tools

curl -X POST {URL}/mcp -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"tools/list","id":2}'

Command Injection

curl -X POST {URL}/mcp -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"tools/call","id":3,"params":{"name":"run_command","arguments":{"command":"whoami"}}}'

Read /etc/passwd

curl -X POST {URL}/mcp -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"tools/call","id":4,"params":{"name":"read_file","arguments":{"path":"/etc/passwd"}}}'

Run Locally

Docker

docker pull cybersecai/dvmcp
docker run -p 3001:3001 cybersecai/dvmcp

Then visit http://localhost:3001

References