Back to skill

Security audit

Openclaw

Security checks for vulnerabilities and agentic risk

Overview

This research skill is mostly purpose-aligned, but it defaults to sending detailed research findings to external AI CLIs and uses shared temporary files in a way users should review carefully.

Review before installing if you may research confidential, proprietary, regulated, or customer-related topics. Prefer setting RESEARCH_CROSS_MODEL=none unless external validation is acceptable, and avoid using the cleanup delete option unless you have verified every listed path.

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

T09 · Insecure Skill Coding Practices

Warning
Location
references/cross-validation.md:18
Finding

Predictable Shared Temporary File Enables Cross-Agent Data Corruption and Unsafe File Writes

Content
View full analysis
/tmp/research-cross-validate.txt << 'FINDINGS' ## My core findings (please review) 1. [Finding 1 — including specific data and sources] 2. [Finding 2] 3. [Finding 3] ... ## Key data points - [Data A]: [Value] (Source: [xxx]) - [Data B]: [Value] (Source: [xxx]) ## My main conclusion [Your analytical conclusion, 500–1000 words] FINDINGS ``` ```bash cat /tmp/research-cross-validate.txt | codex exec "You are an industry analyst. Review the following research findings..." 2>&1 cat /tmp/research-cross-validate.txt | gemini -p "You are an industry analyst. Review the following research findings..." 2>&1 cat /tmp/research-cross-validate.txt | claude -p "You are an industry analyst. Review the following research findings..." 2>&1 ``` ```bash rm -f /tmp/research-cross-validate.txt ``` The corresponding instructions in `SKILL.md` are: ```markdown 1. `exec`: Write core findings to `/tmp/research-cross-validate.txt` 2. `exec`: Invoke the recommended CLI, for example: `cat /tmp/research-cross-validate.txt | gemini -p "Review prompt..." 2>&1` ``` ### Technical Analysis The protocol assigns every research agent the same predictable path in the system-wide temporary directory. The Skill is explicitly designed to run several agents concurrently, making collisions expected rather than merely theoretical. An agent can overwrite another agent's findings between the write and read operations. One agent can also remove the shared file while another agent is still using it. This can cause findings from one research task to be disclosed to a different model invocation or incorporated into the wrong report. The initial shell redirection does not securely create the file ...[truncated 1955 chars]
Remediation
View remediation
"$findings_file" <<'FINDINGS' ... FINDINGS codex exec "Review prompt..." < "$findings_file" 2>&1 ``` Additional hardening measures: 1. Include the run ID and agent ID in logical filenames, while still relying on `mktemp` for unpredictability. 2. Never reuse one temporary path across concurrent agents. 3. Quote every generated path and use input redirection instead of `cat`. 4. Set `umask 077` before creating files containing research data. 5. Validate that the temporary directory is owned by the current account and is not a symbolic link. 6. Install cleanup with `trap` immediately after creating the directory so timeout and failure paths are covered. 7. Prefer an agent-private workspace or in-memory standard input when the CLI supports it. ]]>

other

Warning
Location
references/cross-validation.md:41
Finding

Default Cross-Validation Sends Research Content to External AI Providers Without Explicit Disclosure Consent

Content
View full analysis
&1 ``` ```bash cat /tmp/research-cross-validate.txt | gemini -p "You are an industry analyst. Review the following research findings: 1) identify potentially incorrect or outdated data and explain why; 2) add important missing viewpoints or data; 3) provide an independent judgment on disputed conclusions; 4) summarize which findings are reliable and which require further verification. Output in Chinese." 2>&1 ``` ```bash cat /tmp/research-cross-validate.txt | claude -p "You are an industry analyst. Review the following research findings: 1) identify potentially incorrect or outdated data and explain why; 2) add important missing viewpoints or data; 3) provide an independent judgment on disputed conclusions; 4) summarize which findings are reliable and which require further verification. Output in Chinese." 2>&1 ``` The material sent through these commands is defined as including specific data, sources, key data points, and 500–1000 words of conclusions. The default cross-model mode in `SKILL.md` is `cli`, and the protocol states that agents must perform this external validation in `cli` or `both` mode. ### Technical Analysis Codex, Gemini, and Claude CLIs ordinarily communicate with their respective external model services. Piping the findings file into these tools can therefore transmit the ...[truncated 2138 chars]
Remediation
View remediation
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
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
Findings (13)

External Script Fetching

High
Category
Supply Chain
Confidence
90% confidence
Finding

Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.

Content

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

你(主 agent)应当知道自己当前运行的模型 ID(例如 openai-codex/gpt-5.3-codex-spark、openai-codex/gpt-5.4、google/gemini-2.5-pro 等)。 如果不确定,可用 exec 尝试获取:

bash
curl -s http://localhost:18789/api/session/info 2>/dev/null | python3 -c "import json,sys; print(json.load(sys.stdin).get('model','UNKNOWN'))" || echo "UNKNOWN"

将模型 ID 记录为 inheritedModel,写入 config.md。 后续所有 sessions_spawn 调用必须传入 model: {inheritedModel},确保子 agent 与主 session 使用同一模型。

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
85% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · references/cross-validation.md (reported line 89)May include surrounding context.

步骤 5:清理

bash
rm -f /tmp/research-cross-validate.txt

各 CLI 工具特点(供角色分配参考)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill description advertises industry research but does not clearly warn that it will execute shell commands, inspect the workspace, and send research material to external model CLIs. This undermines informed consent: users may invoke the skill expecting only local reasoning, while their data is actually propagated across tools and processes.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger list includes broad natural-language phrases such as 'industry research' and '调研报告', increasing the chance of accidental invocation in ordinary conversation. Because this skill can spawn sub-agents, run shell commands, and interact with external CLIs, unintended activation materially increases security and privacy risk.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The configuration table sets RESEARCH_LANG default to zh, which imposes a specific language by default. The policy allows locale constraints only when the user is offered a choice or the constraint is clearly justified; here, English is supported but the default is forced without explicit opt-in.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill instructs the agent to archive or delete arbitrary workspace directories and state files before starting research, even though destructive cleanup is not essential to the core research function. Because the cleanup targets are discovered dynamically from the current working directory, a mistaken match, unsafe directory context, or prompt-induced topic/workspace confusion could delete unrelated user data.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The skill requires the main agent to relay sub-agent 'core findings' and 'cross-validation' content back to the user automatically. Those sections may include sensitive material derived from prompts, intermediate files, local context, or external CLI output, and the forwarding occurs without any confidentiality or redaction check.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill mandates sending reviewer results verbatim to the user. Reviewer feedback may quote or summarize sensitive content from agent outputs, missing-dimension notes, or internal artifacts, so verbatim disclosure can leak more data than the user needs for progress tracking.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill explicitly forwards merger summaries and merged-review results to the user without checking whether the merged content contains confidential material copied from upstream agents or tool outputs. Because the merger aggregates multiple sources, it can amplify leakage by consolidating sensitive details into a polished final summary.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill instructs piping internally generated research content to third-party CLI models (Codex, Gemini, Claude) without any user notice, consent, or data-classification check. This can expose proprietary, sensitive, or regulated information to external services and create untracked data egress during normal use of the skill.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

This markdown file presents its title and descriptive content entirely in Chinese, with no indication that language selection is optional or that the document is intended only for a Chinese-speaking audience. Under the policy criteria, forcing a specific language without user opt-in is a natural-language locale violation.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

The skill probes a local session-management API via curl to discover model information, which expands the skill's access beyond research content into local runtime introspection. While the specific call is read-only and local, it normalizes network/API probing from within the skill and could expose local metadata or become risky if the local service behavior changes.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
97% confidence
Finding

Each sample prompt explicitly instructs the external model to respond with '以中文输出', imposing a specific language choice. The file does not offer a user language preference or explain that the protocol is intentionally limited to Chinese-only usage.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.