vulnerable-mcp-server-outdated-pacakges
MCP server for filesystem operations with intentionally outdated dependencies
pinned to #47b7f20updated 2 weeks ago
Ask your AI client: “install mcps/vulnerable-mcp-server-outdated-pacakges”.
Requires the metahub MCP server installed in your client. Set up MCP.
mh install mcps/vulnerable-mcp-server-outdated-pacakgesmetahub onboarded this repo on the author's behalf.
If you own github.com/appsecco/vulnerable-mcp-servers-lab on GitHub, claim the listing to take over publishing. Your claim preserves the existing eval history and badges; only the curator label is replaced with verified-publisher on your next publish.
Stars
264
Last commit
2 weeks ago
Latest release
published
- #ai-red-teaming
- #ai-research
- #appsecco
- #bugbounty
- #filesystem
- #hacking
- #learning-pentesting
- #mcp
- #mcp-client
- #mcp-server
- #model-context-protocol
- #pentesting
- #vulnerable-labs
What this server exposes
Surfaces parsed from this server's source at publish time.
Launches: vulnerable-mcp-server-outdated-pacakges
Evaluation report
WarningsAutomated checks the publisher passed at publish time — structure, docs, safety, and whether the artifact behaves as claimed.47b7f20· 2 weeks ago
Safety
21Dependencies: known vulnerabilitieswarn
35 high/critical advisories — @modelcontextprotocol/[email protected] (HIGH: GHSA-8r9q-7v3j-jr4g) · @modelcontextprotocol/[email protected] (HIGH: GHSA-w48q-cv73-mx4w) (+33)
Update the affected packages, then re-publish. (`npm audit` shows the same data locally.)
LICENSE file at repo root
LICENSE
No sensitive files in the repo
scanned for .env, credentials.json, *.pem, .ssh/, AWS / GCP configs — none found
Release history
1- releasecurrent47b7f20warn2 weeks ago
Contents
Vulnerable MCP Server: Outdated Packages (Supply Chain)
This is an intentionally vulnerable MCP server that provides basic, read-only filesystem/system inspection tools.
The primary purpose of this lab is to demonstrate supply chain risk from outdated, deprecated, and vulnerable dependency versions.
Do not use this outside a controlled lab environment.
What it provides
The server exposes these MCP tools:
get_folder_size: Calculate the total size of a folder (bytes + MB)- Expects:
{ "path": "<absolute-folder-path>" }
- Expects:
list_directory: List files/directories in a path- Expects:
{ "path": "<absolute-directory-path>" }
- Expects:
get_system_info: Return OS/CPU/memory/hostname/home/tmp details- No arguments
check_path_exists: Check whether a path exists- Expects:
{ "path": "<absolute-path>" }
- Expects:
get_file_stats: Return file/directory stats (size/timestamps/permissions)- Expects:
{ "path": "<absolute-path>" }
- Expects:
How it is vulnerable
This package intentionally pins older, deprecated, and/or vulnerable dependency versions in package.json so that:
npm auditproduces findings- dependency scanners can demonstrate detection/reporting
- you can discuss how “works fine” != “safe to run”
Examples of intentionally-problematic dependencies include:
request(deprecated/unmaintained)lodashpinned to an older version- other old ecosystem packages that frequently appear in audits
This is a supply chain demonstration: in real systems, known-vulnerable packages can be exploited directly, or used as stepping stones (prototype pollution, SSRF, ReDoS, etc.), depending on where/how they are used.
Requirements
- Node.js (the package declares
>=14, but using a modern Node LTS is recommended) - npm
Install dependencies in this folder:
npm install
Run with Claude (using claude_config.json)
This folder includes claude_config.json, which is a ready-to-merge snippet for Claude's MCP server config.
- Install dependencies:
npm install
- Edit
claude_config.jsonand replace the placeholder:
/full/path/to/vulnerable-mcp-server-outdated-pacakges/index.js
Use an absolute path.
-
Open Claude and edit its MCP configuration (Claude Desktop typically exposes this under Settings -> Developer -> Edit config).
-
Merge the
mcpServersentry into your config. If you already havemcpServers, add just the server entry:
{
"mcpServers": {
"vulnerable-mcp-server-outdated-pacakges": {
"command": "node",
"args": [
"/absolute/path/to/vulnerable-mcp-server-outdated-pacakges/index.js"
]
}
}
}
- Restart Claude so it loads the updated MCP configuration.
After Claude restarts, the server should appear as:
vulnerable-mcp-server-outdated-pacakges
Run manually (for debugging)
This server speaks MCP over stdio (JSON-RPC over stdin/stdout). Most users should run it via an MCP-capable client (like Claude) rather than manually.
If you just want to confirm it starts:
npm install
node index.js
Example usage (tools)
From your MCP client, call tools like these:
- Get OS/system info:
get_system_info
- List a directory:
list_directorywithpath: "/tmp"
- Check if a path exists:
check_path_existswithpath: "/etc/passwd"
- Get file stats:
get_file_statswithpath: "/etc/hosts"
- Calculate a folder size:
get_folder_sizewithpath: "/var/log"
Notes
- To surface the intentionally vulnerable dependency set:
npm audit
- You can also inspect the dependency tree:
npm ls
Links to Appsecco Resources
Reviews
No reviews yet. Be the first.
Related
vulnerable-mcp-server-malicious-code-exec
A simple MCP server with a get_qotd tool that fetches quotes from a free API
vulnerable-mcp-server-malicious-tools
A simple MCP server to fetch and display latest status of Atlassian services
vulnerable-mcp-server-indirect-prompt-injection-remote-mcp
A vulnerable MCP server demonstrating indirect prompt injection through document retrieval
mh install mcps/vulnerable-mcp-server-outdated-pacakges