T07 · Tool Hijacking and Spoofing
- Location
config.json:4- Finding
Relative MCP Server Path May Execute an Attacker-Controlled Script
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is a coherent SearXNG search integration, but its install/configuration pattern can execute the wrong local script and overwrite existing MCP configuration.
Install only after changing the MCP config to use an absolute path to the packaged mcp-server.py, merging the searxng entry into your existing mcporter config instead of overwriting it, and using a trusted SearXNG endpoint for non-sensitive searches.
config.json:4Relative MCP Server Path May Execute an Attacker-Controlled Script
SKILL.md:54Installation Instructions Overwrite the Existing MCP Configuration
SKILL.md:60Unpinned Global npm Installation Creates Supply-Chain Exposure
The server builds a request URL from the unvalidated SEARXNG_URL environment variable and then fetches it with urllib.request.urlopen. If an attacker can influence the runtime environment or deployment configuration, they can redirect requests to arbitrary internal or external hosts, enabling SSRF-style behavior, access to internal services, or use of insecure plaintext HTTP endpoints. In an MCP search skill, this is more dangerous because the tool is explicitly designed to make outbound web requests on behalf of an agent.
url = f"{SEARXNG_URL}/search?q={encoded_query}&format=json"
try:
with urllib.request.urlopen(url, timeout=30) as response:
data = json.loads(response.read().decode('utf-8'))
results = data.get('results', [])[:limit]
return results
Referenced artifact was not completely inspected
./searxng_search.sh "your search query"
Referenced artifact was not completely inspected
./searxng_search.sh "your search query"
Referenced artifact was not completely inspected
./searxng_search.sh "your search query"
The skill exposes meaningful capabilities—environment access, shell execution, and network access—yet does not declare an explicit tool scope such as permissions or allowed-tools. This creates an avoidable least-privilege gap: agents or operators may grant broader execution authority than intended, increasing the blast radius if the skill is misused or later modified.
The documentation instructs users to send search queries to a configurable remote SearXNG endpoint but does not warn that those queries may contain sensitive prompts, topics, or operational data and will be transmitted to that external service. Because the endpoint is user-configurable and may be third-party, this omission can lead to unintentional data disclosure, logging, or monitoring of agent activity.
No suspicious patterns detected.