Back to skill

Security audit

Agency Orchestrator

Security checks for vulnerabilities and agentic risk

Overview

This skill is mostly an agent-routing tool, but it makes persistent shell changes, logs full task text, and can load unaudited local code.

Review this carefully before installing. Run the integration script only if you are comfortable with it changing your OpenClaw config and shell profile, inspect or remove the PATH and alias additions if unnecessary, avoid sending secrets in tasks, and treat collaborative_mode.py as unsafe unless the external collaborative_agents module is trusted and audited.

Vulnerability Patterns
  • Tool Hijacking and SpoofingModifies or replaces tools so legitimate-looking calls execute attacker logic
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (3)

T07 · Tool Hijacking and Spoofing

Warning
Location
integrate_with_clawx.sh:48
Finding

Persistent PATH Modification Enables Command Shadowing

Content
View full analysis
/dev/null; then echo 'export AGENCY_DIR="$HOME/.openclaw/agency-agents-zh"' >> ~/.bash_profile echo 'export PATH="$AGENCY_DIR:$PATH"' >> ~/.bash_profile echo "✅ 已添加到 ~/.bash_profile" else echo "✅ 环境变量已存在" fi # 4. 创建 Qwen 别名 echo "" echo "🔧 创建 Qwen 命令别名..." if ! grep -q "alias qwen-agency" ~/.bash_profile 2>/dev/null; then echo 'alias qwen-agency="python3 $HOME/.openclaw/skills/agency-orchestrator/qwen_extension.py"' >> ~/.bash_profile echo "✅ 已创建别名 qwen-agency" else echo "✅ 别名已存在" fi # 5. 刷新配置 source ~/.bash_profile 2>/dev/null ``` ### Technical Analysis The integration script permanently prepends `$HOME/.openclaw/agency-agents-zh` to the user's `PATH`. This directory is described as an Agent data and configuration directory rather than a dedicated, controlled executable directory. Because it appears before the existing `PATH`, any executable placed there with the same name as a legitimate command will be selected first by the shell. This creates a command-shadowing opportunity. The modification persists across future shell sessions because it is written to `~/.bash_profile`. The script also immediately sources the complete profile. Consequently, it executes all commands currently present in that profile, including unrelated or previously injected commands, in the context of the integration process. ### Attack Path 1. An attacker, compromised Agent component, or other process obtains write access to `~/.openclaw/agency-agents-zh`. 2. The attacker places an executable in that directory using the name of a commonly invoked command, such as `python3`, `git`, or another utility. 3. The user runs the integration script, which pre ...[truncated 828 chars]
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
collaborative_mode.py:8
Finding

Unaudited External Module Is Loaded Through Precedence-Altering Search Paths

Content
View full analysis
dict: # 使用协作系统执行 result = self.system.execute_task(task) ``` ### Technical Analysis The module places two hard-coded external directories at the beginning of `sys.path`. Python therefore searches these mutable filesystem locations before ordinary package locations when resolving `collaborative_agents`. The imported module is not included in the audited project. Its source, integrity, version, and behavior cannot be verified from this package. Python executes top-level module code during import, so merely importing `collaborative_mode.py` can execute code from either external directory. Additional external behavior is invoked through `CollaborativeAgentSystem.execute_task(task)`. This is also non-portable because the paths are tied to a specific user's home directory. ### Attack Path 1. An attacker or compromised local component obtains write access to either `/Users/ghq/.openclaw/evolution/week1` or `/Users/ghq/.openclaw/integration`. 2. The attacker creates or replaces `collaborative_agents.py`. 3. The user imports or directly runs `collaborative_mode.py`. 4. Python resolves `collaborative_agents` from the attacker-controlled preferred path. 5. Malicious top-level statements execute immediately during import. 6. If initialization continues, additional attacker-controlled behavior can execute when `Collabo ...[truncated 656 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
agency_orchestrator.py:109
Finding

Unredacted User Task Content Is Persisted in Plaintext Logs

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
  • 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
Findings (19)

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

This is a strong description-behavior mismatch: the skill claims to orchestrate agents, but the detected behavior includes modifying local configuration, persisting shell changes, altering PATH, creating aliases, and performing installation/integration actions. That is dangerous because users may consent to a coordination tool while unknowingly granting a persistence and environment-modification mechanism that can alter future command execution and system trust boundaries.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The README advertises '持续学习' and documents several persistent log files, but it does not inform users what interaction data may be stored, how long it is retained, or whether prompts/results may be captured. In a multi-agent orchestration skill handling broad user tasks, this can lead to unanticipated collection of sensitive business, personal, or code data and weak informed consent.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The documented configuration explicitly enables continuous evolution/learning, yet the README does not warn users that system behavior may change over time based on prior interactions. For an orchestration skill that selects and coordinates many agents, undisclosed adaptive behavior can create unpredictable outputs, privacy concerns, and trust/safety issues in production use.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
84% confidence
Finding

The skill advertises capabilities that imply file read/write behavior but does not declare any explicit tool scope or permissions boundary. In an agent ecosystem, undeclared filesystem access increases the chance of over-privileged execution, surprise side effects, and unsafe invocation by users or orchestrators that rely on manifest metadata for trust decisions.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The skill metadata, title, feature descriptions, and usage examples are presented exclusively in Chinese, with no indication that users may interact in other languages or opt into this locale. Under the policy, forcing a specific language without user choice is a natural-language policy concern unless the locale restriction is explicitly justified.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill explicitly describes persistent orchestration, learning, and collaboration logs but provides no warning that prompts, outputs, filenames, or other sensitive task data may be retained. In a multi-agent system, such logs can accumulate credentials, proprietary content, or personal data, creating privacy, compliance, and secondary-compromise risk if the logs are accessed or exfiltrated.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The manifest describes an automatic multi-agent collaboration system that selects the best agents and coordinates them to complete complex tasks. In practice, this method only performs keyword-based categorization, picks entries from a scanned directory, logs the request, and returns metadata stating agents are 'ready' without any implementation of inter-agent execution or coordination.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The function persistently logs raw task content to a local JSON file under the user's home directory without notice, consent, retention limits, or redaction. Tasks may contain secrets, personal data, customer information, or proprietary prompts, creating a confidentiality risk if the file is later accessed by other local users, backup systems, telemetry collectors, or malware.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

This manifest file presents command descriptions, usage, and examples only in Chinese, with no indication that the skill is region-specific or that users can choose another language. That creates a natural-language locale policy concern because the skill appears to force a specific language without user opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

This code file contains natural-language strings and documentation entirely in Chinese, including the module description, class docstrings, and initialization output. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation because no alternative locale or language selection is offered.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The script performs persistent configuration changes to both ~/.openclaw/openclaw.json and ~/.bash_profile, which exceed a narrow task-orchestration role and create side effects outside the immediate execution context. Even if intended for convenience, silently altering user configuration broadens the trust boundary and can be abused to persist behavior, affect future shells, or mask later malicious changes.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

Appending environment variables and PATH changes to ~/.bash_profile creates persistent execution influence beyond the skill's stated orchestration function. PATH manipulation is especially sensitive because it can change which binaries run in later sessions, increasing the risk of command hijacking or hard-to-trace behavior if the referenced directory contents are altered.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The script writes exports directly into ~/.bash_profile without prior warning or consent, causing a persistent environment change the user may not notice. Unannounced startup-file edits reduce transparency and make it easier for unwanted persistence to blend in with legitimate setup steps.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

Adding a shell alias without user approval creates a persistent command that may affect future behavior and user expectations. Because aliases can redirect execution transparently, they are a common persistence and confusion mechanism, even when introduced for convenience.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

This Python file contains user-facing strings entirely in Chinese, including the title and CLI usage/help output. That imposes a specific language on users without offering a language choice or documenting a justified locale restriction, which matches the language/locale policy violation category.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
70% confidence
Finding

Natural-language policy review applies to all file types, and this README presents all user-facing instructions in Chinese while not indicating that Chinese is optional or required for a region-specific reason. That can amount to forcing a language/locale without user opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

The module description, class/function docstrings, status messages, warning messages, and CLI usage text are all presented in Chinese. This imposes a specific language on users without any opt-in, fallback, or documented justification for a Chinese-only experience.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

The manifest suggests meaningful automated analysis for choosing the best agent(s) for a task. The code instead performs a basic substring match against a fixed keyword list and derives complexity solely from character length, which does not match the sophistication implied by the description.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
74% confidence
Finding

All user-facing comments and runtime messages in the script are written in Chinese, which may impose a specific language experience without offering an alternative or opt-in. The policy requires flagging language or locale constraints when a skill forces a specific language without user choice.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.