Back to skill

Security audit

项目制多智能体开发协议

Security checks for vulnerabilities and agentic risk

Overview

This skill does not show theft or backdoor behavior, but it needs review because it enables broad background development automation and can overwrite persistent project state with weak scoping.

Install only if you are comfortable with a Chinese-language project automation skill that may alter OpenClaw project tracking files. Review the target dev_Project.md before use, keep backups, and avoid running the memory-viewer command unless you understand what local data it exposes.

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

T09 · Insecure Skill Coding Practices

Warning
Location
project_mode_skill.py:133
Finding

Greedy Multiline Replacement Can Delete Persistent Project State

Content
View full analysis
Remediation
View remediation
" end_marker = "" start = content.find(start_marker) end = content.find(end_marker, start + len(start_marker)) if start == -1 or end == -1: raise ValueError("Task-list section markers are missing") updated = ( content[:start + len(start_marker)] + "\n" + task_lines.rstrip() + "\n" + content[end:] ) ``` 2. If a regular expression remains necessary, use a non-greedy match with an explicit lookahead for the next known heading or section delimiter. Do not rely on `.*` with `re.DOTALL` without a structural boundary. 3. Validate that exactly one section was replaced and that required headings and metadata remain present before writing the result. 4. Write the updated document atomically: - Create a temporary file in the same directory. - Flush and synchronize it. - Replace the destination with `os.replace()` only after validation succeeds. 5. Preserve a backup or versioned copy before modifying persistent project state. 6. Add regression tests containing multiple sections after the task list and verify byte-for-byte that content outside the intended task section remains unchanged. ]]>
Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • 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 (9)

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

描述强调这是一个可在后台自动拆解、调度开发与测试角色、更新项目文档并处理重试的完整多智能体开发协议。但代码实际更像一个半成品/原型:它具备若干阶段函数和文档更新逻辑,却没有在主入口中串联执行完整流程,也没有真实的多智能体或后台调度能力。开发与测试环节只是注释说明“这里应该调用LLM”,测试结果还被硬编码为通过;因此核心能力被明显夸大。虽然代码确实会读写工作区中的项目文档并进行任务拆解、状态更新等,这与声明部分方向一致,但对主要能力和完成度的表述存在实质性偏差,因此应判定为描述与行为不匹配。

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
92% confidence
Finding

The skill describes behavior that reads and writes project files but does not declare any explicit tool scope or permissions boundaries. In a skill that coordinates development tasks and updates workspace state, undeclared file capabilities increase the risk of unintended or overly broad filesystem access without clear user or platform review.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The description says the skill operates in the background but does not clearly warn that it will automatically update project tracking files. Silent or poorly disclosed file modification is dangerous because users may invoke the skill without understanding that it can change workspace state, making accidental integrity loss more likely.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
84% confidence
Finding

Core user-facing description and operating instructions are written in Chinese, including the required trigger phrase, with no indication that users may choose another language. This may violate language/locale policy if the skill effectively requires a specific language without opt-in or documented regional justification.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The trigger phrase "项目制" is overly broad and can activate the skill in many contexts without clear boundaries. Because this skill is designed to read and update project files and coordinate development actions, ambiguous activation raises the chance of unintended execution and unauthorized workspace modifications.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill documentation includes commands to launch a local memory-visualization web app that is unrelated to the stated project-management purpose. Unrelated operational commands expand the skill’s effective behavior and may encourage users or agents to start local services exposing sensitive workspace or memory data without clear need or consent.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The module docstring and operational descriptions are primarily written in Chinese and present the skill as operating in that language by default. There is no indication that users may select another language or that the locale restriction is intentional and justified, which creates a natural-language policy concern under the language/locale rule.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The manifest and module docstring describe a full background multi-agent development protocol that decomposes tasks, schedules programmer/tester roles, updates dev_project.md, and handles error retries. In practice, the main entrypoint stops after calling stage_one_architecture, updates the task list, and returns a 'STAGE_ONE_COMPLETE' response without invoking the development, integration, delivery, or retry/fuse logic.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

The nearby output/commentary states '等待用户确认后进入阶段二' and '返回任务列表供确认', implying a controlled pause before later execution. However, there is no mechanism in this function or file to resume stage two after confirmation; execution ends with the returned dictionary.

Content

No source excerpt is available for this finding.