Back to skill

Security audit

Multi Search Engine

Security checks for vulnerabilities and agentic risk

Overview

This search skill does what it advertises, but it incorrectly claims there is no external data transmission while sending queries to multiple third-party search engines.

Review this skill before installing if you may search for sensitive topics, names, internal projects, secrets, or regulated data. Its searches can be sent to multiple external providers, possibly in different jurisdictions, and the privacy notice does not accurately disclose that behavior.

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
SKILL.md:16
Finding
Undisclosed Multi-Provider Transmission of User Search Queries## Vulnerability Details **File Location**: `SKILL.md:16-20` and `SKILL.md:150-154` **Vulnerability Type**: Privacy disclosure mismatch and excessive query distribution **Risk Level**: Medium ### Vulnerable Code ```markdown 3. **Controlled Search**: Use web_fetch to execute search requests with rate limiting: - Add 1-2 second delay between requests to respect server load - Batch requests in groups of 3-4 engines with sequential execution between batches - Include standard browser headers to identify as legitimate user agent - If access is denied (403/429), fetch engine homepage to obtain fresh session cookies ``` The data-handling notice contradicts that network behavior: ```markdown ### Data Handling - **No Personal Data**: Tool does not collect or transmit user personal information - **Local Execution**: All operations run locally, no external data transmission - **Session Isolation**: Cookies are session-specific and cleared after use ``` ### Technical Analysis The Skill explicitly directs the agent to place user-provided search terms into URLs and submit them to batches of three or four external search providers. This network access is necessary for web-search functionality, but distributing every query to several providers is broader than the minimum access required to perform a search. Search queries may contain names, email addresses, internal project identifiers, confidential business information, personal concerns, credential-like strings, or other sensitive data. URL query parameters may be retained in provider logs, network telemetry, browser or tool history, and monitoring systems. The statement that all operations are local and involve “no external data transmission” is factually incompatible with the required `web_fetch` operations. Consequently, users may submit information under an incorrect privacy assumption. The static pre-scan finding at `references/international-search.md:185` is not evidence that an actual password is ...[truncated 1879 chars]
Remediation
## Remediation Suggestions 1. Replace the inaccurate privacy statements with an explicit disclosure that search terms and request metadata are transmitted to selected third-party search engines. 2. Default to a single search provider and use additional providers only when the user requests aggregation or the first provider fails. 3. Obtain explicit user confirmation before transmitting a query to multiple providers, especially when sensitive information is detected. 4. Display the destination domains before network requests are made. 5. Warn users not to submit passwords, API keys, authentication tokens, private keys, personal identifiers, confidential documents, or proprietary internal data. 6. Apply URL encoding to all user-controlled query values and keep provider hostnames constrained to a fixed allowlist. 7. Minimize request metadata and avoid reusing identifying cookies where they are not required. 8. Document realistic cookie behavior and verify that cookies remain domain-scoped, in memory, and are cleared after each search session. 9. Replace remote password-generation examples with local generation using a cryptographically secure random-number generator. 10. Provide a privacy-preserving mode that uses one user-selected provider and disables cookie acquisition, retries, and multi-provider fan-out.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • YARA SignaturesMalware Match, Webshell Match, Cryptominer Match
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (14)

YARA rule 'info_stealer': Information stealer patterns (credential harvesting, browser data theft) [malware]

High
Category
YARA Match
Content
ription: "Multi search engine integration with 16 engines (7 CN + 9 Global). Supports advanced search operators, time filters, site search, privacy engines, and WolframAlpha knowledge queries. No API keys required."
---

# Multi Search Engine

Integration of 16 search engines for web crawling without API keys.

## Workflow

1. **Preparation**: AI Agent initializes an empty in-memory cookie store. Cookies are only acquired dynamically during search operations when access is denied

2. **Language Evaluation**: Detect the language attribute of the search query. If the query is in Chinese, use Domestic search engines (Baidu, Bing CN, Bing INT, 360, Sogou, WeChat, Shenma). If the query is non-Chinese, use International search engines (Google, Google HK, DuckDuckGo, Yahoo, Startpage, Brave, Ecosia, Qwant, WolframAlpha). Select engines based on query relevance and availability.

3. **Controlled Search**: Use web_fetch to execute search requests with rate limiting:
   - Add 1-2 second delay be
Confidence
75% confidence
Finding
YARA rule matched a known malware signature (reverse shell, backdoor, ransomware, C2 framework, or info stealer).

Intent-Code Divergence

High
Confidence
98% confidence
Finding
The documentation states 'All operations run locally, no external data transmission,' but the skill clearly performs outbound requests to multiple third-party search engines. This misrepresentation can cause users or downstream agents to handle sensitive queries under false assumptions about network exposure and privacy.

Natural-Language Policy Violations

Medium
Confidence
86% confidence
Finding
This markdown file presents the skill's key information, features, changelog, and usage guidance entirely in Chinese. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation unless the locale constraint is explicitly documented and justified, which it is not here.

Natural-Language Policy Violations

Medium
Confidence
95% confidence
Finding
Automatic engine selection based on detected query language routes user queries to a predefined set of domestic or international providers without explicit user choice. In this context, that can increase privacy and compliance risk because the user may not realize which jurisdiction or service receives the query.

Intent-Code Divergence

Medium
Confidence
96% confidence
Finding
The claim that the tool does not collect or transmit personal information is inaccurate because user-provided queries are sent to third-party search engines, and queries may themselves contain personal or sensitive data. This creates a privacy risk through disclosure of user input to external services without a clear warning.

Missing User Warnings

Medium
Confidence
96% confidence
Finding
The privacy notice is internally inconsistent: it promises no personal-data transmission and local-only execution while the workflow explicitly sends queries to external search engines. Such incomplete disclosure undermines informed consent and can lead to accidental exposure of sensitive search terms.

Natural-Language Policy Violations

Medium
Confidence
86% confidence
Finding
This config repeatedly assigns engines to the "cn" region and includes a China-specific Bing configuration and domain choices, which imposes a locale/region preference in the skill configuration. Under the policy, locale constraints should either be user-selectable or clearly justified as region-specific; that justification or opt-in is not present in this file.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The examples encourage sending arbitrary user queries directly to third-party search providers through constructed URLs without clearly warning that search terms, IP address, browser metadata, and possibly sensitive research intent will be disclosed externally. In a multi-engine skill, users may assume the tool is a neutral helper and not realize their queries are being transmitted to multiple outside services with different privacy practices.

Missing User Warnings

Medium
Confidence
85% confidence
Finding
The cached-page example is framed as a way to view deleted content, which can normalize retrieval of material that a publisher intended to remove and may expose personal or sensitive information still present in search caches. Without legal, ethical, or privacy warnings, the skill increases the risk of misuse for circumvention of content removal rather than ordinary search.

Context-Inappropriate Capability

Medium
Confidence
90% confidence
Finding
The manifest describes a search-integration skill focused on multiple engines, search operators, filters, privacy engines, and WolframAlpha knowledge queries. This section documents using the skill for generic transformation and generation tasks unrelated to searching, expanding the capability beyond search aggregation into ad hoc utility functions.

Description-Behavior Mismatch

Low
Confidence
99% confidence
Finding
The manifest description states the skill integrates with 16 engines (7 CN + 9 Global), but this configuration contains 15 total entries: 7 CN engines and 8 Global engines. This is a direct description-to-implementation mismatch in the advertised scope of the skill.

Natural-Language Policy Violations

Low
Confidence
96% confidence
Finding
SQP-3 applies to all file types and covers language or locale policy violations in natural-language content. The title and all instructional content are presented only in Chinese, with no indication that the skill is region-specific or that users may opt into another language.

Context-Inappropriate Capability

Low
Confidence
78% confidence
Finding
The manifest frames the skill as search-engine integration with advanced operators and filters. Documenting cache access specifically for viewing deleted content goes beyond ordinary search and introduces a content-recovery use case that is not explicitly part of the declared purpose.

Missing User Warnings

Low
Confidence
88% confidence
Finding
The DuckDuckGo parameter table includes `kp=-1` for turning off Safe Search, but the markdown does not disclose that doing so can expose users to explicit, unsafe, or otherwise undesirable content. Because this changes a safety-related behavior, the description should include a clear warning.

Static analysis

No suspicious patterns detected.