Back to skill

Security audit

Openclaw Multi Agent Orchestrator

Security checks for vulnerabilities and agentic risk

Overview

The skill is a local, user-invoked multi-agent coordination helper with some documentation and disclosure gaps, but no evidence of hidden execution, exfiltration, or destructive behavior.

Install only if you want a local JSON-backed agent coordination helper. Avoid putting secrets in task messages, and treat the optional related-skill npx commands as separate third-party installs that should be pinned or reviewed before use.

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:31
Finding
Unpinned Third-Party Package Execution in Installation Recommendations## Vulnerability Details **File Location**: `README.md`, lines 31–33 **Vulnerability Type**: Unpinned third-party supply-chain dependencies **Risk Level**: Medium ### Complete Code Snippet ```bash npx clawhub install openclaw-auto-backup npx clawhub install openclaw-memory-enhancer npx clawhub install openclaw-search-pro ``` ### Technical Analysis The documentation recommends invoking three third-party packages through `npx` without fixed versions, integrity hashes, verified provenance, or source-review requirements. These packages are optional and are not required for the project's local agent-orchestration functionality. Because package names resolve to mutable registry content, the code executed by these commands can differ from the code available when this project was audited. Depending on the behavior of `npx` and the resolved packages, package entry points or lifecycle scripts may execute automatically. This creates a supply-chain trust boundary outside the audited project. The bundled Python implementation itself does not retrieve or execute remote payloads. The risk arises only if a user follows these optional documentation commands. ### Attack Path 1. An attacker compromises a referenced package, its publisher account, or the package registry resolution path. Alternatively, the attacker gains control of an abandoned or unclaimed referenced package name. 2. The attacker publishes a malicious version containing a hostile executable entry point or lifecycle script. 3. A user follows the recommendation in `README.md` without pinning or independently reviewing the resolved package. 4. `npx` retrieves the current package content from the configured registry. 5. The malicious package code executes with the permissions of the user running the command. ### Impact Assessment Successful exploitation could permit arbitrary code execution under the invoking user's account. The resulting scope could include access to files, environment variables, credent ...[truncated 302 chars]
Remediation
## Remediation Suggestions 1. Remove the unrelated third-party installation recommendations unless they are necessary for core functionality. 2. If these integrations must remain, pin every package to a specifically reviewed version rather than resolving the latest mutable release. 3. Document the expected publisher, registry, package digest, and source repository so users can verify provenance. 4. Verify package integrity using cryptographic hashes or lockfile integrity metadata. 5. Review package entry points, transitive dependencies, and lifecycle scripts before recommending execution. 6. Disable lifecycle scripts where practical and install packages in an isolated, least-privileged environment. 7. Clearly mark the commands as optional and warn users that they download and execute third-party code outside this project's audit scope.
Vulnerability Patterns
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (18)

Tp4

High
Category
MCP Tool Poisoning
Confidence
88% confidence
Finding
The declared description presents a broad multi-agent coordination/orchestration platform with registration, task dispatch, load balancing, monitoring, and communication. The supplied code, however, is narrowly scoped to communication and lightweight collaboration tracking. It stores messages and collaboration metadata in local JSON files, supports send/broadcast/inbox/reply/read operations, and can start/list/complete simple collaboration records. While this aligns with the declared 'Agent 间通信' aspect, it does not implement or demonstrate the broader claimed capabilities such as agent registration, load balancing, performance monitoring, or substantive task distribution/management. Therefore the description materially overstates what this code chunk actually does.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding
The declared description presents a full-featured multi-agent coordination/orchestration system. The actual code chunk only prints informational status text and a placeholder note about future health-check/statistics functionality. This is a material mismatch in primary purpose and implemented capabilities: the code does not actually manage agents or perform monitoring beyond static output. No undeclared sensitive behavior is evident, but the implementation is far narrower than the declared functionality.

Natural-Language Policy Violations

Medium
Confidence
93% confidence
Finding
The skill documentation is presented almost entirely in Chinese, including installation criteria and usage guidance, with no indication that other languages are supported or that the locale is intentionally region-specific. This creates a natural-language policy concern because the skill appears to impose a specific language on users without opt-in or documented justification.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Lp3

Medium
Category
MCP Least Privilege
Confidence
90% confidence
Finding
The skill declares executable capabilities that imply file read/write behavior, but its manifest does not define any explicit tool scope such as permissions or allowed-tools. This creates an authorization ambiguity where a host may grant broader access than users expect, increasing the risk of unintended filesystem access or modification.

Natural-Language Policy Violations

Medium
Confidence
90% confidence
Finding
The display name and primary description text are written in Chinese, and the usage/documentation sections continue in Chinese without indicating that other languages are supported. This creates a locale/language constraint in the skill's natural-language interface without explicit user opt-in or justification as a region-specific tool.

Natural-Language Policy Violations

Medium
Confidence
92% confidence
Finding
This JSON file contains user-visible message content in Chinese ("新任务来了!") with no indication that the skill is region-specific or that users can opt into this locale. The policy requires avoiding forced language/locale behavior unless choice or justification is provided.

Natural-Language Policy Violations

Medium
Confidence
93% confidence
Finding
The message content at this line is a Chinese-language task notification presented as a default system message. Because the file provides no alternative locales or documented reason for a Chinese-only experience, it represents a natural-language locale policy issue.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The script persists inter-agent messages and collaboration records to predictable JSON files on disk without any consent notice, retention control, or access protection. In a multi-agent orchestration context, those records may contain prompts, task content, internal coordination data, or sensitive business information, so silent persistence increases the risk of unintended disclosure from local access, backups, or log collection.

Natural-Language Policy Violations

Medium
Confidence
92% confidence
Finding
This Python file contains natural-language usage text and feature descriptions primarily in Chinese, and later CLI argument descriptions are also Chinese-only. Because the skill does not offer user opt-in for language selection or document that it is intended only for a Chinese-speaking context, it creates a locale-policy concern under the language-choice rule.

Natural-Language Policy Violations

Medium
Confidence
95% confidence
Finding
All argparse descriptions and help messages are presented in Chinese only, which means users invoking --help are forced into a single language experience. There is no option to select another language and no documented justification for the locale restriction.

Natural-Language Policy Violations

Low
Confidence
93% confidence
Finding
This JSON config contains a natural-language task written in Chinese, but there is no indication that language selection was user-driven or that the skill is intentionally limited to a Chinese-language workflow. Under the policy, forcing a specific language without opt-in can be a locale-policy issue.

Natural-Language Policy Violations

Low
Confidence
91% confidence
Finding
The natural-language interface and usage descriptions are primarily in Chinese, and runtime output/help strings throughout the file also default to Chinese. This can violate a language/locale policy when the skill forces a specific language without user opt-in or an explicit documented locale constraint.

Natural-Language Policy Violations

Low
Confidence
92% confidence
Finding
The script prints Chinese text in its user-facing messages, including '任务分发到合适 Agent' and '提示:完整功能需要实现任务路由和负载均衡', without indicating that language selection is optional. This can violate a language/locale policy when a skill imposes a specific language without user opt-in.

Natural-Language Policy Violations

Low
Confidence
97% confidence
Finding
This code emits user-facing messages in Chinese ('注册 Agent 到协同系统' and '提示:完整功能需要实现 Agent 发现和注册逻辑') without indicating that the user can choose their preferred language. That creates a natural-language policy concern because the skill appears to impose a locale/language on all users by default.

Natural-Language Policy Violations

Low
Confidence
95% confidence
Finding
The script prints user-facing status messages that include Chinese text and does not provide any option to select language or locale. This can violate language/locale policy when users are not given a choice and the tool is not clearly documented as region-specific.

Static analysis

No suspicious patterns detected.