Back to skill

Security audit

Openclaw Free Search

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent web-search helper, but its install instructions rely on mutable remote code and its third-party query handling is under-disclosed.

Install only if you are comfortable with the unpinned npx installer and with search terms being sent to DuckDuckGo. Prefer a pinned, reviewed installer version or inspect the package before running the install command, and do not use this skill for secrets, private identifiers, confidential prompts, or regulated data.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:10
Finding
Execution of an Unpinned Package During Installation## Vulnerability Details **File Location**: `SKILL.md`, lines 10–14 **Vulnerability Type**: Supply-chain risk from an unpinned executable dependency **Risk Level**: Medium **Vulnerable Code:** ```bash ## Installation ```bash npx clawhub@latest install openclaw-free-search ``` ``` ### Technical Analysis The documented installation procedure directs users to execute the mutable `latest` release of the `clawhub` npm package through `npx`. The package version is not pinned, and the documentation provides no integrity digest or other mechanism for verifying the downloaded artifact. `npx` can download and execute package code. Consequently, the code executed by this command may differ from the version that existed when the skill was audited. If the package, registry entry, or publisher account is compromised, a malicious release published under the `latest` tag could run during installation. The audit found no evidence that the current package is malicious. The vulnerability is the unsafe, mutable trust relationship created by the installation command. ### Attack Path 1. An attacker compromises the `clawhub` package, its publisher account, or the relevant package-distribution channel. 2. The attacker publishes a malicious release and assigns it to the `latest` distribution tag. 3. A user follows the installation instructions and runs `npx clawhub@latest install openclaw-free-search`. 4. `npx` downloads and executes the attacker-controlled package release. 5. The malicious package executes with the permissions of the user running the installation command. ### Impact Assessment Successful exploitation provides arbitrary code execution under the installing user's account. Depending on that account's permissions and environment, an attacker could read or modify user-accessible files, obtain accessible credentials or tokens, tamper with installed skills and configuration, or establish user-level persistence. This comman ...[truncated 147 chars]
Remediation
## Remediation Suggestions - Replace the mutable `@latest` reference with an exact, reviewed package version. - Verify the package against a trusted integrity hash or signed provenance before execution. - Use a lockfile or another reproducible dependency mechanism where applicable. - Document the expected registry and trusted publisher identity. - Review the pinned package version, including lifecycle scripts and transitive dependencies, before recommending its execution. - Update the pinned version only through a controlled review and testing process.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (7)

Lp3

Medium
Category
MCP Least Privilege
Confidence
92% confidence
Finding
The skill advertises executable usage that invokes local Node.js code and performs web searches, implying shell execution and network access, but the manifest does not declare any tool scope such as permissions or allowed-tools. Missing capability declarations weaken review and enforcement boundaries, so a user or host may permit broader execution than intended without clear disclosure.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding
Using `npx clawhub@latest install openclaw-free-search` pulls and executes the latest remote package version at install time, which is a supply-chain risk because the package contents can change without review. If the package or one of its dependencies is compromised, users may execute attacker-controlled code during installation.

Natural-Language Policy Violations

Medium
Confidence
95% confidence
Finding
All usage strings, errors, and output labels are presented in Chinese, which imposes a specific language on users. The file does not provide a language option, opt-in, or justification that this is a China-specific or Chinese-only skill.

External Transmission

Medium
Category
Data Exfiltration
Content
}
const wantJson = process.argv.includes('--json');

const url = `https://api.duckduckgo.com/?q=${encodeURIComponent(query)}&format=json&no_html=1`;

async function main() {
  let data;
Confidence
97% confidence
Finding
The skill is explicitly designed to send search terms to `https://api.duckduckgo.com/`, which is an external service. In the context of an agent tool, that means arbitrary user or system-sourced content may leave the local trust boundary; if prompts include secrets, PII, or confidential topics, the transmission can leak sensitive information.

Missing User Warnings

Medium
Confidence
96% confidence
Finding
User-supplied search queries are sent to DuckDuckGo over the network without any runtime disclosure or consent flow. In an agent context, queries can contain sensitive user data, internal identifiers, or proprietary prompts, so silent transmission to a third party creates a real privacy and data-handling risk.

Context-Inappropriate Capability

Medium
Confidence
91% confidence
Finding
The manifest describes a free web search skill, where making HTTP requests is expected. However, invoking `child_process.execFileSync` to run `curl` introduces subprocess-execution capability, which is materially broader than ordinary search logic and is not stated in the skill's purpose.

Missing User Warnings

Low
Confidence
85% confidence
Finding
The code falls back to executing the external curl binary through execFileSync, which is a subprocess operation covered by the warning requirement. Although the inline comment explains this for developers, there is no visible notice to the user that an external command may be invoked.

Static analysis

No suspicious patterns detected.