Back to skill

Security audit

Multi-Search

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed paid research-search gateway integration, with no evidence of hidden execution, persistence, or destructive behavior.

Install only if you are comfortable sending search queries, article URLs, and related research parameters to the configured gateway and its data providers. Keep RESEARCH_GATEWAY_URL unset unless you intentionally use a trusted HTTPS gateway, and monitor paid x402/API usage for broad multi-domain searches.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T09 · Insecure Skill Coding Practices

Warning
Location
skills/search.sh:11
Finding

Configurable Gateway Can Receive the Research API Key

Content
View full analysis
/dev/null) ``` ### Technical Analysis The script accepts `RESEARCH_GATEWAY_URL` without validating its scheme, hostname, port, or trust relationship. It then constructs the request URL from that value and attaches `RESEARCH_API_KEY` as a bearer token. Consequently, any party capable of controlling the environment variable can redirect authenticated requests to an arbitrary destination. The script does not require HTTPS or restrict authenticated requests to the expected `gateway.spraay.app` host. This is a configuration-dependent vulnerability: exploitation requires influence over the process environment or deployment configuration. The issue does not independently provide command execution because shell arguments are passed through arrays and quoted correctly. ### Attack Path 1. An attacker gains the ability to influence the Skill's environment or installation configuration. 2. The attacker sets `RESEARCH_GATEWAY_URL` to an attacker-controlled endpoint, such as `http://attacker.example`. 3. A user or agent invokes `skills/search.sh` while `RESEARCH_API_KEY` is present. 4. The script constructs the destination URL using the malicious gateway value. 5. `curl` sends the `Authorization: Bearer ...` header and request data to the attacker-controlled server. 6. The attacker captures the API key and may reuse it for unauthorized gateway requests or paid API consu ...[truncated 610 chars]
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (3)

External Script Fetching

High
Category
Supply Chain
Confidence
90% confidence
Finding

Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.

Content

Scanner excerpt · skills/search.sh (reported line 2)May include surrounding context.

sh
#!/usr/bin/env bash
# deep-research gateway caller — handles x402 payment flow via curl
# Usage:
#   research.sh GET  /api/v1/research/papers/search '{"query":"restaking"}'
#   research.sh POST /api/v1/search/web '{"query":"ethereum restaking 2026"}'

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
95% confidence
Finding

The skill invokes shell and network capabilities via bash .../scripts/search.sh and external gateway/API calls, but it does not declare any explicit tool scope such as permissions or allowed-tools. This weakens least-privilege controls and makes it easier for an agent runtime to grant broader execution/network access than users or platform policy may expect.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill encourages fanning out user queries across multiple external services and explicitly lists per-call pricing, but it does not provide a prominent user-facing warning that prompts may be transmitted to several third parties and may incur cumulative costs. This can lead to unintended disclosure of sensitive query content and surprise billing when the agent automatically searches multiple domains.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.