Back to skill

Security audit

OpenClaw Agency Agents

Security checks for vulnerabilities and agentic risk

Overview

This skill manages AI-agent personas, but it pulls mutable third-party content into persistent workspace instruction files without enough user confirmation or integrity checks.

Review this skill carefully before installing. It is not evidence of malware, but you should install it only if you trust the jnMetaCode agency-agents-zh repository and are comfortable with selected remote Markdown becoming your workspace AGENTS.md. Prefer a pinned, reviewed repository revision, inspect diffs before activation or update, and keep backups of any existing SOUL.md, IDENTITY.md, and AGENTS.md files.

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

Error
Location
scripts/activate.sh:134
Finding

Unpinned Third-Party Content Can Inject Workspace-Level Agent Instructions

Content
View full analysis
"$WORKSPACE_DIR/AGENTS.md" ``` ### Technical Analysis The setup script clones a mutable third-party Git repository, and the update script pulls the latest state of its `main` branch. Neither operation pins a reviewed commit or release, verifies a cryptographic checksum, validates a signed tag or commit, or restricts updates to an approved manifest. The activation script subsequently takes the body of a Markdown file from that repository and writes it directly into the workspace-level `AGENTS.md`. This file is intended to contain instructions that influence Agent behavior. The script removes YAML frontmatter but does not inspect, sanitize, or restrict the remaining instruction content. Consequently, the effective Agent instructions can change after this Skill has been reviewed. A compromise of the upstream repository, its maintainer account, or its release process could introduce hostile instructions without requiring changes to the audited Skill package itself. The audited project does not contain evidence that the current upstream content is malicious. The vulnerability is the unrestricted trust boundary between mutable remote content and a behavior-controlling workspace file. ### Attack Path 1. An attacker c ...[truncated 1609 chars]
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (15)

Tp4

High
Category
MCP Tool Poisoning
Confidence
92% confidence
Finding

代码的核心确实与“激活智能体人格”相符:它在本地仓库中查找目标智能体,备份当前配置,并写入新的 SOUL.md、IDENTITY.md 和 AGENTS.md。但声明中的若干关键能力未在该代码中体现,尤其是“首次使用自动克隆仓库”与“列出可用智能体”。此外,代码访问并修改工作区文件属于激活流程的合理实现细节,不构成额外未声明的可疑能力。综合来看,描述比实际代码能力更宽,存在行为与描述不完全一致的情况。

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

代码的核心行为与声明用途明显不一致。声明描述的是“管理和激活 AI 智能体人格”、列出可用智能体、搜索智能体、首次自动克隆仓库等能力;但实际代码仅实现了一个恢复脚本:检查 backups 目录、列出备份、按索引选择备份,并复制 SOUL.md、IDENTITY.md、AGENTS.md 到工作区。它没有体现智能体列表、搜索、激活、仓库克隆或人格管理逻辑。虽然恢复这些文件可能与某种配置管理有关,但该代码片段的主要目的仍是本地配置恢复,属于未在描述中体现的不同功能,因此应判定为描述与行为不匹配。

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The description and invocation examples are entirely in Chinese and direct use of a Chinese-specific agent repository, but the file does not offer an opt-in language choice or explain that the skill is intentionally limited to Chinese users. This can violate language or locale policy when a skill implicitly enforces one language by default.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

All user-facing messages, usage examples, and command guidance in the script are presented only in Chinese, indicating a fixed language choice for the skill experience. The file does not offer a language selection, fallback, or document a justified locale restriction, which can violate language/locale policy requirements.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The script writes directly into the workspace by creating or overwriting SOUL.md, IDENTITY.md, and AGENTS.md, and also creates backup directories. That is a real state-changing side effect beyond simple discovery/listing, and because the content comes from a cloned repository, it can inject untrusted prompt/instruction content into files that may later influence agent behavior. In this skill context, activation is expected to change persona state, but doing so via persistent workspace file modification increases risk and should be explicit and controlled.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The script performs backups and overwrites multiple top-level workspace files without an explicit warning or confirmation step immediately before modification. This is dangerous because users may trigger activation expecting a temporary persona switch, while the script persistently alters files that can affect future runs or other tooling, especially since the inserted content originates from an external repository. The skill context makes this more concerning because agent prompt files are high-leverage control surfaces.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The script's natural-language strings, comments, and user-facing messages are entirely in Chinese, including its stated purpose and all prompts. Under the policy, forcing a specific language without user opt-in or a clearly documented region-specific justification is a natural-language policy violation.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This shell script copies backup versions of SOUL.md, IDENTITY.md, and AGENTS.md into the workspace, replacing existing files if present. Although it prints status messages, it does not provide a user-facing warning that local changes may be overwritten, nor does it ask for confirmation before performing this potentially destructive file write.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
81% confidence
Finding

The skill states that first use will automatically clone a remote repository, but it does not present this as a clear up-front warning in the metadata/description. Pulling remote content into a local workspace is a trust and supply-chain relevant action; users should be explicitly informed before network retrieval and local materialization occur.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
76% confidence
Finding

The update operation pulls remote changes into a local repository without a clearly emphasized user-facing warning. Even if expected for this skill, updating from a remote source changes local trusted content and can introduce unreviewed changes, making this a mild supply-chain and transparency risk.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
98% confidence
Finding

The manifest identifies this skill as 'openclaw-agency-agents', but the generated SOUL.md states the source as 'openmaic-agents skill'. This is an explicit documentation contradiction that can mislead users about which skill produced or controls the active configuration.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The script's comments and user-facing output are written in Chinese throughout, including error and status messages. This enforces a specific language for all users without any opt-in, fallback, or documented locale constraint, which matches the language policy violation criteria.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
96% confidence
Finding

This shell script's natural-language strings, including its description, errors, usage text, and status messages, are all presented only in Chinese. Under the policy criteria, forcing a specific language without user opt-in is a natural-language policy violation unless the locale restriction is explicitly documented and justified, which is not present here.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
96% confidence
Finding

The header comment says this script initializes "openmaic-agents-lite skill", but the actual behavior and user-facing output clone and initialize the agency-agents-zh repository for OpenMAIC/agency agents. This is an active documentation contradiction that can mislead maintainers about what the script is intended to set up.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
98% confidence
Finding

This shell script presents its user-facing description, prompts, status messages, and usage guidance entirely in Chinese. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation unless the locale restriction is explicitly documented and justified, which is not present in this file.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.