Medium
github · 6 files analyzed
lharries/whatsapp-mcp
Powerful capabilities — review before trusting.
View source ↗Check your own MCP server
Free · no signup · instant shareable report.
Outbound network 1
Remote code execution 1
Shell / command execution 1
AI review
The extension has a legitimate purpose but includes a remote code execution vector via curl-piped-to-sh installation of UV, and uses subprocess.run for audio conversion which could be exploited if arguments are not sanitized. The developer should pin UV installation to a specific version and validate all subprocess arguments.
- medium Unpiped remote installation of UV — README.md line 24 instructs users to run `curl -LsSf https://astral.sh/uv/install.sh | sh`, which downloads and executes a script from the internet without version pinning or checksum verification. This could be exploited if the astral.sh domain is compromised, leading to arbitrary code execution on the user's machine.
- medium Subprocess execution for audio conversion — In whatsapp-mcp-server/audio.py line 52, `subprocess.run()` is called. If the command or its arguments are constructed from user-controlled input (e.g., file names or paths), this could allow command injection. The code should be reviewed to ensure all arguments are properly sanitized or use safe APIs.
- low Network requests to external URLs — In whatsapp-mcp-server/whatsapp.py line 637, `requests.post(url, json=payload)` is used. If the URL is dynamically constructed from user input or untrusted sources, it could be exploited for SSRF or data exfiltration. The URL should be validated against an allowlist.
Model: deepseek-chat
Static findings
Remote code execution · Downloads and executes remote code
info
README.md:24
- UV (Python package manager), install with `curl -LsSf https://astral.sh/uv/install.sh | sh`
Shell / command execution · Executes shell / system commands
medium
whatsapp-mcp-server/audio.py:52
process = subprocess.run(
Outbound network · Makes outbound network requests
low
whatsapp-mcp-server/whatsapp.py:637
response = requests.post(url, json=payload)
Scanning every extension your team installs?
Pro & Team add monitoring, private scans, and a CI gate for unsafe extensions.
MCPVet is a heuristic aid, not a security guarantee. A clean grade does not prove an extension is safe; always review code and instructions you don't trust.