Back to skill

Security audit

Everything Cli Search

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly a Windows file-search helper, but it includes an unsafe Bash wrapper and risky remote-access and deletion guidance that need review before installation.

Install only if you are comfortable with Everything indexing your local filesystem. Avoid the Bash wrapper until eval is removed, do not copy the forced-delete PowerShell example, and enable HTTP/ETP servers only on trusted networks with strong access controls and a clear need.

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 (3)

T09 · Insecure Skill Coding Practices

Error
Location
scripts/es_search.sh:40
Finding

Shell Command Injection Through eval in the Bash Wrapper

Content
View full analysis
&1) echo "$output" | jq -R 'split("\n") | map(select(length > 0)) | map({path: .})' 2>/dev/null || echo "$output" else # Output as text eval "$cmd" fi ``` ### Technical Analysis The script initially constructs the command as a Bash array, which would normally preserve argument boundaries. However, `build_cmd` serializes that array into a plain string using `echo`, and the caller subsequently executes the string with `eval`. Values controlled by the caller—including the search query, path, sort field, and `ES_PATH` environment variable—therefore undergo a second round of shell parsing. Shell separators, substitutions, redirections, and other metacharact ...[truncated 1445 chars]
Remediation
View remediation
&1) else "${cmd[@]}" fi ``` - Do not return arrays through `echo` and command substitution. - Resolve `ES_PATH` to an approved executable and reject unexpected executable paths where the environment is not fully trusted. - Validate options that have a finite set of permitted values, such as sort fields. - Add regression tests containing spaces, semicolons, command substitutions, redirections, and quotes to verify that every supplied value remains a single literal argument. ]]>

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:1004
Finding

Remote File Access Guidance Omits Required Network Security Controls

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
EXAMPLES.md:731
Finding

Destructive PowerShell Cleanup Example Deletes Unreviewed Search Results

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (15)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 783)May include surrounding context.

md
es -p "F:\openclaw-skills" "SKILL.md"

Intent-Code Divergence

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The script constructs a shell command from user-controlled inputs and executes it with eval, which re-parses the generated string as shell syntax. Inputs such as the query, search path, sort field, or even ES_PATH can inject command separators or substitutions, turning a file-search wrapper into arbitrary command execution.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The PowerShell example pipes search results into Remove-Item -Force without any confirmation, preview, path validation, or safety warning. Because the search pattern is broad and the date filter is mislabeled, users could unintentionally mass-delete files, causing data loss or destructive cleanup beyond what they intended.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The document content is presented in Vietnamese throughout, including setup steps, troubleshooting, and usage guidance. Because the file does not offer an alternative language or indicate that the skill is intentionally restricted to Vietnamese-speaking users, it appears to impose a specific language without user opt-in.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The README promotes remote access features such as HTTP and ETP server support without warning that they can expose indexed file names, paths, and potentially file access to other devices on the network. In a search/indexing tool, this omission can lead users to enable remote features without understanding the privacy and attack-surface implications.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The tip to use the HTTP server for remote access encourages exposing search capability to another device without warning that this may disclose file names, paths, metadata, or content access beyond the local machine. Because the README frames this as a convenience feature, users may enable it casually and unintentionally expose sensitive data on a home or corporate network.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill instructs users to enable Everything's HTTP server to access indexed files remotely, but it does not warn that this exposes file metadata and potentially sensitive local file access over the network. In a security-sensitive agent skill, omitting authentication, binding, firewall, and exposure guidance can lead users to unintentionally publish local file information beyond localhost or weaken host security posture.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill recommends enabling the ETP/FTP server and even shows a credential-bearing connection string, but it does not discuss risks such as network exposure, weak transport security, credential leakage, or unintended remote browsing of indexed files. Because this feature is specifically for remote search and access, the lack of security caveats materially increases the chance of unsafe deployment.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
99% confidence
Finding

The use of eval here is itself the core vulnerability, not merely a UX issue about missing warning text. Because the command string contains attacker-influenced values, eval enables arbitrary shell execution immediately and silently, which is especially dangerous in an agent skill context where parameters may come from higher-level automation.

Content

No source excerpt is available for this finding.

subprocess module call

Medium
Category
Dangerous Code Execution
Confidence
70% confidence
Finding

subprocess module calls execute external commands. Without careful input validation, this enables command injection.

Content

Scanner excerpt · scripts/everything_search.py (reported line 107)May include surrounding context.

python
cmd.append(final_query)

        try:
            result = subprocess.run(
                cmd,
                capture_output=True,
                text=True,

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The docstring for search_in_directory says it searches within the provided directory path, but when recursive is False the code stores kwargs["parent"] = path and calls self.search(query, **kwargs). The search method has no parent parameter and only honors its path argument, so this branch does not constrain results to the specified directory as documented.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
82% confidence
Finding

The example es.exe -admin "test" demonstrates elevated execution without warning about privilege implications. While it is only an example command, normalizing unnecessary administrator use can encourage users to run commands with elevated rights, increasing risk if combined with other mistakes or unsafe follow-on actions.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
96% confidence
Finding

The inline comment at L739 describes locating 'old temp files', but the command at L740 uses datemodified:last30days, which conventionally means recently modified within the last 30 days. This is an intent/documentation mismatch in the example itself, not just an omitted detail.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
78% confidence
Finding

The instructions tell users to enable the Everything service for real-time indexing but do not explain that this creates continuous, system-wide file metadata monitoring and may broaden visibility across volumes and users depending on configuration. While not inherently unsafe, omitting this context can cause users to enable a persistent service without understanding privacy and operational implications.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

The code provides search_by_content to search inside file contents, which can expose sensitive user data from documents or other files. While the function is documented technically, there is no warning, confirmation, or user-facing disclosure that content scanning may inspect private file contents.

Content

No source excerpt is available for this finding.