Back to skill

Security audit

Multi Model Consensus

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly purpose-aligned, but it automatically stores potentially sensitive decision reports and sends user content to multiple model sessions without enough consent and retention controls.

Install only if you are comfortable with the skill sharing your decision prompt and related context across selected model sessions. Avoid using it for confidential, regulated, credential-containing, financial, legal, or personal data unless archival is disabled or you have confirmed exactly where reports are written and how to delete them later.

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
SKILL.md:353
Finding

Automatic Archival of Potentially Sensitive User Decision Data

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:353-366
Vulnerability Type: Persistent storage of potentially sensitive user content without explicit consent or retention controls
Risk Level: Medium

Vulnerable Configuration

The following is an English rendering of the relevant configuration:

markdown
- The `Read` tool may only read:
  - Files in the Skill directory (`SKILL.md`, `references/`, `docs/`, etc.)
  - `~/.openclaw/workspace/tmp_mmc_*.md` temporary report files
  - Reading hidden files under the user's home directory, such as `.ssh/`,
    `.env/`, and `.aws/`, is strictly prohibited.
- The `Write` tool may only write:
  - `~/.openclaw/workspace/memory/` for report archival
  - `~/.openclaw/workspace/tmp_mmc_*.md` for temporary report files
  - `~/Desktop/*` for final report output
  - Writing to any other path is prohibited.

- Maximum execution time for each child session: 120 seconds
- Maximum concurrent child sessions: 6
- Automatic report archive path:
  `~/.openclaw/workspace/memory/MONTHLY/mmd_<date>.md`

Technical Analysis

The Skill collects the user's project background, requirements, and proposal under review and incorporates that information into a consensus report. It then specifies an automatic archive location under the Agent's persistent workspace memory.

Decision submissions may contain confidential business plans, financial information, personal data, internal architecture details, or credentials accidentally pasted by a user. The Skill does not require explicit consent before archival and does not define data classification, secret detection, redaction, file permissions, retention duration, deletion, or per-user isolation.

The issue is classified as insecure persistent handling of sensitive data rather than Agent Memory Poisoning. The archived material consists primarily of reports rather than attacker-controlled behavioral rules, so there is ins ...[truncated 1739 chars]

Remediation
View remediation

Remediation Suggestions

  1. Disable report archival by default and return reports only in the current conversation.
  2. Require explicit, informed user confirmation before writing any report to persistent storage.
  3. Show the exact destination path and explain that the report may remain accessible across sessions.
  4. Scan reports for credentials, tokens, private keys, passwords, personal data, and other sensitive fields before persistence.
  5. Redact or omit the original proposal and unnecessary background information from archived reports.
  6. Store reports in a dedicated data directory rather than an Agent behavioral-memory directory.
  7. Apply restrictive file and directory permissions and enforce separation between users and workspaces.
  8. Define a short retention period and automatically delete expired reports and temporary files.
  9. Provide commands to list, export, and permanently delete archived reports.
  10. Document whether report content is forwarded to external model providers and obtain separate consent where applicable.
  11. Remove automatic archival entirely if persistence is not necessary for the Skill's consensus functionality.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (31)

Unrestricted Tool Access

Medium
Category
Excessive Agency
Confidence
80% confidence
Finding

Skill grants unrestricted tool access without appropriate constraints. An agent with unfettered tool access can perform arbitrary actions including file modification, network requests, and code execution.

Content

Scanner excerpt · README.md (reported line 25)May include surrounding context.

md
| **V1.6.2** | **2026-04-27** | **Core logic refactored**: Removed "Convergence"; introduced "Decision Point" level review; "Convergence Discussion" renamed to "Dispute Discussion"; final report includes decision point status (✅/🟡/🔴) |
| **V1.6.5** | **2026-04-30** | **Security Hardening**: Removed unused `Exec` from allowed-tools; reduced max concurrent sub-agents from 13 to 6; added `Write` tool path restriction (memory directory only); added model-routing early termination rule in TROUBLESHOOTING.md |
| **V1.6.6** | **2026-04-30** | **Security Fix**: Replaced `openclaw.json` file scan with `openclaw models list` command to avoid exposing provider tokens; corrected committee size description from 3-13 to 3-6 models; added Read/Write tool path whitelist in SKILL.md |
| **V1.6.7** | **2026-04-30** | **Auditability Fix**: Clarified tool usage scope—organizers use Read/Write, judges receive content via task parameter and must not call any tools; removed contradictory "internal-only" markings; eliminated ambiguous judge spawn instructions in OUTPUT_TEMPLATE.md |

---

Unrestricted Tool Access

Medium
Category
Excessive Agency
Confidence
80% confidence
Finding

Skill grants unrestricted tool access without appropriate constraints. An agent with unfettered tool access can perform arbitrary actions including file modification, network requests, and code execution.

Content

Scanner excerpt · docs/USER_GUIDE.md (reported line 28)May include surrounding context.

md
| **V1.6.2** | **2026-04-27** | **Core logic refactored**: Removed "Convergence"; introduced "Decision Point" level review; "Convergence Discussion" renamed to "Dispute Discussion"; final report includes decision point status (✅/🟡/🔴) |
| **V1.6.5** | **2026-04-30** | **Security Hardening**: Removed unused `Exec` from allowed-tools; reduced max concurrent sub-agents from 13 to 6; added `Write` tool path restriction (memory directory only); added model-routing early termination rule in TROUBLESHOOTING.md |
| **V1.6.6** | **2026-04-30** | **Security Fix**: Replaced `openclaw.json` file scan with `openclaw models list` command to avoid exposing provider tokens; corrected committee size description from 3-13 to 3-6 models; added Read/Write tool path whitelist in SKILL.md |
| **V1.6.7** | **2026-04-30** | **Auditability Fix**: Clarified tool usage scope—organizers use Read/Write, judges receive content via task parameter and must not call any tools; removed contradictory "internal-only" markings; eliminated ambiguous judge spawn instructions in OUTPUT_TEMPLATE.md |

---

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The activation phrases are broad enough to match ordinary user requests like 'review this plan' or 'make a decision,' which can cause the skill to trigger unexpectedly. In an agent environment, unintended activation can change workflow, invoke multi-model coordination, and cause unnecessary disclosure of user-provided content to additional models without clear intent.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
82% confidence
Finding

The English recommendations state that the committee should include at least one model with strong Chinese-language comprehension. This imposes a language-specific requirement without explaining that it is optional or region-specific, which can conflict with policies against forcing a locale or language absent user choice.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The README recommends including a model with strong Chinese-language context understanding as part of standard model selection. Because this is stated as a default recommendation rather than an opt-in or region-specific constraint, it may improperly bias language/locale behavior.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
82% confidence
Finding

The manifest description specifies activation only when input contains the Chinese phrases 多模型决策 or 多模型委员会, and the skill content is written to assume Chinese usage. This creates a language-specific constraint without indicating user choice, opt-in, or a justified region-specific limitation.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
82% confidence
Finding

The governance rule states child agents '不得调用任何工具', while the operational sections describe automatic environment checks, spawn behavior, yielding, and result collection through tool-mediated session operations. Although some of that is intended for the organizer, the documentation presents a broad prohibition alongside instructions that rely on tool usage in the agent workflow, creating intent ambiguity and contradiction in the documented behavior.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill authorizes writing final reports to ~/Desktop and other local paths without requiring an explicit, per-action user confirmation. That can create unexpected files on the user's system, leak sensitive decision content into broadly visible locations, and normalize silent local persistence beyond what a user may expect from a deliberation skill.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The README promotes sending tasks to multiple models but omits a clear warning that user content may be transmitted to several external model providers. In a multi-model committee skill, this omission is security-relevant because sensitive prompts, documents, or business data could be replicated across providers without informed user consent.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

At L205-L206, the documentation states a core logic rewrite that cancels the 'convergence' concept and replaces it with decision-point-level review and dispute discussion. However, substantial earlier sections in the same file still describe a '3-round convergence mechanism,' 'Convergence Rounds,' and a final round whose pass condition ignores threshold requirements (L79-L145, especially L112-L135), which directly conflicts with the later-described logic.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The configuration trigger phrases are broad enough to overlap with ordinary conversation, which can cause unintended activation of a workflow that fans user content out to multiple models. In this skill's context, accidental triggering increases the risk of unintentional multi-model data sharing and unexpected agent behavior.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

At L024 the version history states the core logic removed the 'Convergence' concept and renamed related discussion to dispute discussion. However, later guidance reintroduces 'Convergence Rounds', 'Convergence Check', a 'Convergence' definition, and convergence skip rules at L148-L155, L191, and L199-L220, which directly contradicts that stated change.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The English guide recommends that the committee include at least one model with strong Chinese-language comprehension, which introduces a language preference as an operational expectation rather than an optional user choice. This can conflict with a language/locale policy if users are not offered an explicit opt-in or alternative for non-Chinese workflows.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The Chinese guide states that model selection should include at least one model with strong Chinese-language understanding, presenting a default language requirement rather than a user-selected option. Because this applies at the skill-guidance level and is not clearly limited to Chinese-language use cases, it may violate language/locale choice expectations.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This markdown template is written as a fixed Chinese-language output format and presents the report sections entirely in Chinese, with no indication that the user can choose another language. The policy explicitly flags language or locale constraints when a skill forces a specific language without user opt-in.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

L003-L005 明确说明实际执行已不再使用持久化状态文件,而 L070 又写明“保留当前状态文件,下次可恢复执行”。这是文档内部对实现方式的直接矛盾,不是单纯的信息缺失,会误导读者对技能实际状态管理与恢复能力的理解。

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

标题及全文均以中文编写,且未说明该技能仅面向中文用户,也未提供其他语言或用户选择语言的说明。按规则,强制特定语言而无用户选择或明确合理性,属于自然语言层面的语言/locale 政策问题。

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This markdown file contains user-facing instructions exclusively in Chinese, and nowhere indicates that the user can choose another language or that the skill is intentionally limited to a Chinese-speaking audience. Under the language/locale policy, forcing a specific language without user opt-in is a natural-language policy violation.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The document gives conflicting version requirements: earlier checks require all files to match V1.5.0, while Step 6 and the pass criteria require V1.2.1 and even list a locked SCHEMA version. In a verification procedure, this inconsistency can cause validators or automation to approve the wrong artifact set, skip legitimate mismatches, or fail reproducibility of the skill’s release process.

Content

No source excerpt is available for this finding.

Vague Triggers

Low
Category
Not specified by scanner
Confidence
87% confidence
Finding

The Chinese section says configuration can be triggered with phrases like "修改配置" and "调整参数", which are broad conversational commands that could apply to many unrelated contexts. The README does not clearly constrain when these phrases should be interpreted as this skill's controls versus ordinary discussion.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

The manifest states the skill supports 3-6 models simultaneously, but the README's Chinese parameter table says '支持2-6个模型同时评审'. This is an active contradiction in user-facing documentation about the skill's intended operating bounds, not merely an omitted detail.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

The manifest description says the skill '支持3-6个模型同时评审', implying a minimum of three models. However, the usage and parameter sections later state '支持2-6个模型同时评审' and allow reducing委员数量 accordingly. This is a semantic mismatch in the skill's stated behavior and supported operating range.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
76% confidence
Finding

The parameter guidance recommends including a model with strong Chinese context understanding, which reinforces a Chinese-language policy assumption. Because the skill does not present this as an optional locale setting or justified region-specific requirement, it may violate language-choice expectations.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
81% confidence
Finding

Automatically scanning locally connected models without a clear warning can surprise users by inspecting local environment configuration they did not realize would be queried. Even if limited to model enumeration, environment inspection without informed consent weakens transparency and can expose metadata about available providers or infrastructure.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

The English guide recommends selecting at least one model with strong Chinese-language comprehension, and the Chinese section repeats this recommendation. This introduces a language-specific preference that is not presented as optional based on user language needs, which can conflict with language/locale neutrality expectations.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.