Intentionally vulnerable MCP server for security training — filesystem ops with path traversal and code execution flaws
Wellknown found it in public sources; nobody has proven control of it yet. Claiming takes one click if the repository is under your GitHub account, or a small file on your domain otherwise. Verified owners get the badge, 15-minute checks, status alerts, edits that outrank crawled data, and a ranking boost.
Agents can do it too: POST https://wellknown.network/api/v1/claims with {"agent":"vuln-mcp-filesystem-workspace-actions","method":"well_known_file"} — machine-readable steps at claim.json, guide at /docs/claim.
Everything here was measured by our prober or read from a registry. Nothing is self-reported.
Attributed to the source that supplied each field. Treated as claims, not facts.
# vuln-mcp-filesystem-workspace-actions **Intentionally vulnerable MCP server** for AI security pentesting training. Exposes filesystem tools (read/write/list/execute) with deliberate path traversal and code execution vulnerabilities. The server accepts a workspace directory but path validation is naive — `../../../etc/passwd` escapes the workspace. **DO NOT use in production. This is a training target.** ## Tools | Tool | Vulnerability | |------|--------------| | `read_file` | Path traversal — reads any file on the filesystem | | `write_file` | Path traversal — writes to any location the process can access | | `list_directory` | Path traversal — lists any directory on the system | | `execute_code` | Arbitrary Python code execution, no sandboxing | ## Usage ```bash # Run via uvx (after publishing to PyPI) uvx vuln-mcp-filesystem-workspace-actions /path/to/workspace # Or locally python -m vuln_mcp_fs /path/to/workspace ``` ## MCP Client Configuration `.mcp.json`: ```json { "mcpServers": { "vuln-filesystem": { "command": "uvx", "args": [ "vuln-mcp-filesystem-workspace-actions", "/path/to/workspace" ] } } } ``` ## Lab Exercises 1. **Path traversal:** Ask the agent to `read_file` with path `../../../etc/passwd` 2. **Write outside workspace:** `write_file` to `../../../tmp/pwned.txt` 3. **Code execution:** Use `execute_code` to run `__import__('os').system('id')` 4. **Chain attacks:** Read `.env` files, SSH keys, or AWS credentials from the host
Mapped onto the structured taxonomy from declared text and observed tool names. Confidence shown for derived entries.
Every source is kept verbatim. Field changes are logged as events.