Back to skill

Security audit

DashScope Web Search

Security checks for vulnerabilities and agentic risk

Overview

This appears to be a real web-search skill, but its broad automatic use can send user queries to DashScope without a clear privacy or consent boundary.

Review before installing if your OpenClaw conversations may include secrets, personal data, customer data, or regulated information. Configure the DashScope API key only in a least-privileged runtime, prefer a pinned dependency or isolated environment, and consider narrowing the activation rules so external search only runs when users explicitly request it.

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
README.md:47
Finding

Unpinned Third-Party Python Dependency

Content
View full analysis

Vulnerability Details

File Location: README.md, lines 47-51
Vulnerability Type: Unpinned dependency installation
Risk Level: Medium

Vulnerable Code:

markdown
### 3. Install Python dependency

```bash
pip install openai
text

### Technical Analysis

The documented setup procedure installs the `openai` package without specifying a reviewed version, lock file, package hash, or trusted package index. Consequently, the exact code installed depends on the package version and index configuration available when the command is executed.

This creates a supply-chain exposure: a compromised future release, compromised transitive dependency, or attacker-controlled package index could cause users to install unintended code. The issue does not demonstrate that the current `openai` package is malicious; the risk arises because the installation process does not provide reproducibility or integrity verification.

### Attack Path

1. An attacker compromises a future package release, one of its transitive dependencies, or a package source configured in the victim's pip environment.
2. A user follows the project documentation and executes `pip install openai`.
3. Pip resolves and downloads the attacker-controlled or compromised package because no version or integrity hash is enforced.
4. Malicious package code executes during installation or when `scripts/web_search.py` imports and uses the package.
5. The code runs with the permissions of the user or service account operating OpenClaw.

### Impact Assessment

Successful exploitation could result in arbitrary code execution under the account performing installation or running the skill. Depending on that account's permissions, an attacker could access application data and environment variables, including `DASHSCOPE_API_KEY`, alter user-accessible files, tamper with other skills, or make unauthorized network requests.

The issue does no
...[truncated 181 chars]
Remediation
View remediation

Remediation Suggestions

  1. Create a dependency lock or requirements file that pins the reviewed openai version and all relevant transitive dependencies.

  2. Generate and record cryptographic hashes for every package artifact.

  3. Install dependencies with hash verification, for example:

    bash
    python3 -m pip install --require-hashes -r requirements.txt
    
  4. Use an explicitly configured, trusted package index and prevent fallback to untrusted or organization-internal indexes where dependency confusion may occur.

  5. Regularly scan pinned dependencies for known vulnerabilities and update them through a controlled review process.

  6. Install and run the skill in an isolated virtual environment or container under a least-privileged service account.

  7. Avoid exposing unrelated secrets and sensitive filesystem locations to the skill runtime.

Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • YARA SignaturesMalware Match, Webshell Match, Cryptominer Match
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (9)

YARA rule 'backdoor_persistence': Backdoor persistence with malicious payloads (shell commands, SSH key injection, hidden root users) [malware]

High
Category
YARA Match
Confidence
75% confidence
Finding

YARA rule matched a known malware signature (reverse shell, backdoor, ransomware, C2 framework, or info stealer).

Content

Scanner excerpt · README.md (reported line 36)May include surrounding context.

skill folder to your OpenClaw skills directory cp -r web-search /path/to/openclaw/skills/

text

### 2. Configure DashScope API Key

Get your API key from [DashScope Console](https://dashscope.console.aliyun.com/).

Set the environment variable before starting OpenClaw:

```bash
export DASHSCOPE_API_KEY="sk-your-api-key-here"

Or add it to your shell profile (~/.bashrc, ~/.zshrc):

bash
echo 'export DASHSCOPE_API_KEY="sk-your-api-key-here"' >> ~/.bashrc
source ~/.bashrc

3. Install Python dependency

bash
pip install openai

4. Update SKILL.md paths

Open SKILL.md and replace all {{SKILL_DIR}} with the actual install path:

bash
# Example: if installed to /home/openclaw/skills/web-search
sed -i 's|{{SKILL_DIR}}|/home/openclaw/skills/web-search|g' SKILL.md

5. Restart OpenClaw

bash
systemctl --user restart openclaw-gateway.service

Usage (via OpenClaw chat)

Once installed, the agent will automatically use this skill when you ask qu

Self-Modification

High
Category
Rogue Agent
Confidence
85% confidence
Finding

Skill modifies its own code, configuration, or behavior at runtime. Self-modification enables an agent to escalate privileges, disable safety constraints, or install persistent backdoors.

Content

Scanner excerpt · README.md (reported line 46)May include surrounding context.

pip install openai

text

### 4. Update SKILL.md paths

Open `SKILL.md` and replace all `{{SKILL_DIR}}` with the actual install path:

Vague Triggers

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The phrase 'Activate proactively' lacks operational limits and encourages autonomous invocation without guardrails. In a skill that sends prompts to an external API, this ambiguity can lead to overuse, privacy leakage, and unreviewed network actions beyond what the user reasonably expects.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The README instructs users to configure an external API key and emphasizes automatic use of the web-search skill, but it does not clearly warn that user prompts and searched content will be transmitted to DashScope, a third-party provider. This creates a real privacy and data-governance risk because sensitive prompts may be sent off-host without informed consent, especially when the skill auto-activates for broad categories of queries.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The skill is described as activating automatically for very broad conditions, including generic factual questions and proactive use whenever the agent thinks current information might help. In context, this increases the chance of unintended external calls, causing privacy leakage, policy bypass, or surprise use of networked capabilities when the user did not clearly consent to web search.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
91% confidence
Finding

The skill declares no explicit tool scope or permissions while the documentation indicates use of environment variables, specifically an API key. This weakens least-privilege controls and makes it harder for a host platform to constrain or audit what sensitive runtime capabilities the skill expects to access.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The phrase 'Activate proactively' lacks operational limits and encourages autonomous invocation without guardrails. In a skill that sends prompts to an external API, this ambiguity can lead to overuse, privacy leakage, and unreviewed network actions beyond what the user reasonably expects.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill documentation says it searches the web via DashScope Qwen but does not clearly warn that user queries are sent to an external API service. Without a prominent disclosure, users and integrators may unknowingly transmit sensitive prompts or regulated data to a third party.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The script sends the user's raw query to DashScope's external API and also enables web search, which can disclose sensitive user-provided data to third parties without any in-band notice or consent mechanism. In the context of an agent skill that is meant to activate proactively for broad factual questions, this increases the chance that users may not realize their prompt content is being transmitted off-platform.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.