Back to skill

Security audit

Everything 文件搜索

Security checks for vulnerabilities and agentic risk

Overview

This skill openly searches and sends local files, but it gives an agent broad ability to export readable indexed files without strong safeguards.

Review before installing. Use this only in a trusted, least-privileged Windows environment where it is acceptable for the agent to search the Everything index and export selected local files up to 10 MB. Do not use it around credentials, private keys, browser profiles, business documents, or other sensitive files unless stronger confirmation and allowlist controls are added.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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
Findings (2)

T05 · Unauthorized Access and Privilege Escalation

Error
Location
main.py:191
Finding

Unrestricted Disclosure of Locally Accessible Files

Content
View full analysis
10 * 1024 * 1024: return { "status": "error", "message": f"文件过大({file_size / (1024 * 1024):.2f} MB),超过 10 MB 限制。" } return { "status": "success", "message": f"正在发送文件:{file_info['filename']}", "file": { "path": file_path, "name": file_info['filename'], "content": base64.b64encode(file_content).decode('utf-8') } } except Exception as e: return { "status": "error", "message": f"发送文件时出错:{str(e)}" } ``` ### Technical Analysis The skill searches the system-wide Everything index and stores the resulting absolute paths in the global `search_results` list. The `send_file` function subsequently opens a selected result using the privileges of the hosting process and returns the entire file content as Base64. No authorization check, approved-directory policy, sensitive-file exclusion, path validation, or user confirmation is applied before the file is read. Consequently, the only effective security boundary is the operating-system identity under which the skill host runs. The numerical result index does not provide a meaningful access-control boundary because the caller can influence the search query and then select any returned result. Although the file-transfer feature is documented, its implementation permits broad filesystem access without controls limiting it to files appropriate for the current caller ...[truncated 1200 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
main.py:203
Finding

File Size Limit Enforced Only After Unbounded Memory Read

Content
View full analysis
10 * 1024 * 1024: return { "status": "error", "message": f"文件过大({file_size / (1024 * 1024):.2f} MB),超过 10 MB 限制。" } ``` ### Technical Analysis The implementation calls `f.read()` without a size bound before checking whether the file exceeds the stated 10 MB transfer limit. Therefore, the entire file is allocated in process memory even when it will ultimately be rejected. The size check also uses `os.path.getsize(file_path)` after the read rather than obtaining metadata from the already-open file descriptor. If the path is replaced or modified between the read and the size check, the validated path metadata may not describe the same content that was read. Base64 encoding of accepted content further increases peak memory use because both the original bytes and an expanded encoded representation are held in memory. ### Attack Path 1. An attacker creates, identifies, or searches for a very large file accessible to the skill host. 2. The attacker causes that file to appear in the Everything search results. 3. The attacker submits `发送 [index]` for the large file. 4. The skill executes an unbounded `f.read()` and attempts to allocate memory for the complete file. 5. Only after the allocation and read does the code detect that the file exceeds 10 MB and reject the transfer. 6. Repeated requests or a sufficiently large file can exhaust available memory or severely degrade the service. ### Impact Assessment Successful exploitation can cause excessive memory consumption, process termination, degraded host performance, or denial of service for other users of the agent. The vulnerability does not independently provide ...[truncated 311 chars]
Remediation
View remediation
limit: return { "status": "error", "message": "File exceeds the 10 MB limit." } file_content = f.read(limit + 1) if len(file_content) > limit: return { "status": "error", "message": "File exceeds the 10 MB limit." } ``` ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (8)

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill is presented as a file search utility, but its documented behavior also includes viewing file details and sending arbitrary local files. That expands the trust boundary from discovery to data exfiltration, and users may invoke it without realizing it can disclose sensitive local content through follow-up indexed commands.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The skill’s stated purpose is local file search, but it also implements file reading and returns base64-encoded file contents for transmission. This creates an undocumented data exfiltration path: a user or downstream agent can search for sensitive files and immediately export their contents, which is substantially more dangerous than metadata-only search.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The code reads arbitrary local files selected from search results and packages their full contents into the response without purpose limitation tied to the search-only description. In an agent environment, this enables straightforward discovery and extraction of local documents, keys, configs, or other sensitive files beyond what a user would expect from a search utility.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill advertises a 'send file' capability without warning users that local files may contain sensitive personal, corporate, or credential material. In this context, a search tool can quickly locate confidential files, and the absence of privacy/disclosure prompts makes unintended exfiltration significantly more likely.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

User-facing comments, help text, commands, and error messages are written in Chinese, and command parsing requires Chinese trigger words such as 搜索, 文件, and 发送. This enforces a specific language/locale without user opt-in or an explicit documented justification, which matches the language policy violation criteria.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The transmission path returns file contents immediately after a simple '发送 [序号]' command, with no additional warning, consent screen, or verification of what is about to leave the host. This increases the chance of accidental disclosure of sensitive local files, especially when search results contain similarly named documents or when an agent is acting on behalf of a user.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The manifest description is written entirely in Chinese and provides no indication that language selection is optional or that the skill is intentionally limited to Chinese-speaking users. This creates a natural-language policy concern because it effectively imposes a language choice without documented user opt-in or justification.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
94% confidence
Finding

The file contains user-facing instructions in Chinese, telling users which DLL files to place in the directory. Under the natural-language policy rules, forcing a specific language without user opt-in or documented justification is a policy concern.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.