Back to skill

Security audit

詹明明

Security checks for vulnerabilities and agentic risk

Overview

This appears to be a legitimate zmm content and business routing skill, but it needs Review because it can automatically turn conversational feedback into persistent rules used by later skill runs.

Install only if you are comfortable with this skill reading your zmm config, vault paths, installed zmm skill descriptions, and skill memory. Keep the memory directory narrow and reviewable, and prefer adding a confirmation step before any feedback is saved as an active rule.

Vulnerability Patterns
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Findings (1)

T02 · Agent Memory Poisoning

Warning
Location
references/规则卡.md:137
Finding
Untrusted Conversational Feedback Can Be Persisted as Future Execution Rules## Vulnerability Details **File Location**: `references/规则卡.md:137-142`; related loading and persistence behavior in `references/家族公约.md:138-145` **Vulnerability Type**: Persistent agent memory poisoning **Risk Level**: Medium ### Complete Relevant Source Segment English rendering of `references/规则卡.md:137-142`: ```markdown ### Automatically persist feedback when a trigger matches; do not wait for the author to say "remember this" - Criterion: Execute when any trigger is met: (1) the author rejects a draft or method; (2) the author supplies a criterion; (3) the author decides between two options; (4) the author says an applied rule is inapplicable or incorrect; or (5) production results or data disprove an existing rule. Four steps are mandatory: preserve the original statement verbatim, determine the authoritative storage layer, convert it into an executable criterion, and record the rework cost. - Why: An observation that cannot state what to do next time is not a rule and must not enter the rule base. A rule without a recorded cost will be treated as an optional suggestion. - How to check: Every new stored rule must contain all four fields; reject it if any field is missing. - Example: Placeholder. - Strength: Hard requirement. ``` English rendering of `references/家族公约.md:138-145`: ```markdown ## Memory Protocol - At startup: Read every valid record under the current Skill's memory directory and the shared directory, then treat the corrections and effective methods in those records as constraints for the current execution. - Before completion: Determine whether the conversation contains either a user correction or a newly validated effective method. If so, write a record; otherwise, do not create one merely for completeness. - Before writing: Search for duplicates. If a similar record exists, append a dated correction section to the existing file without changing the original text. If an old record is wrong, mark i ...[truncated 3823 chars]
Remediation
## Remediation Suggestions 1. **Require explicit confirmation before every persistent write.** Present the destination file, exact proposed text, status, provenance, and scope. Persist only after an authorized user confirms the change. 2. **Separate observations from active rules.** Store conversational feedback as an inactive candidate by default. Promote it to an effective rule only through a distinct review workflow. 3. **Authenticate rule maintainers.** Only trusted owners or designated administrators should be able to create, modify, approve, or abandon shared rules. 4. **Isolate memory by trust boundary.** Keep per-user, per-project, and shared memory separate. Never promote a user-specific statement into shared memory automatically. 5. **Enforce instruction precedence.** Stored memory must never override system instructions, developer instructions, security policy, tool authorization boundaries, or explicit current-session user constraints. 6. **Validate proposed rules.** Reject entries that request secret access, external transmission, privilege changes, unsafe command execution, removal of safeguards, or actions outside the Skill's declared purpose. 7. **Preserve auditable provenance.** Record the initiating user identity, conversation identifier, timestamp, approval identity, exact original statement, transformed rule, and change history. 8. **Add management controls.** Provide commands to list, inspect, disable, delete, and roll back stored rules. Non-destructive history may be retained separately from the active rule set. 9. **Constrain filesystem access.** Limit writes to a dedicated memory directory, prevent path traversal and symlink escapes, and avoid granting the Agent write access to executable code or system configuration. 10. **Add regression tests.** Verify that conversational corrections remain pending without approval, unauthorized users cannot alter shared memory, and persisted records cannot supersede higher-priority saf ...[truncated 17 chars]
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (6)

Ae1

High
Category
analysis-evasion
Content
选定之后,**完整读**入选技能的 `SKILL.md` 和它点名要读的直接引用。
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Vague Triggers

Medium
Confidence
97% confidence
Finding
The trigger list includes very broad natural-language phrases like 'make a short video', 'what should I shoot today', and 'how do I use this', which can match ordinary conversation rather than an intentional request to invoke this specific skill. Because this skill is a top-level router that changes conversation flow and may steer users into other skills, accidental activation can cause unintended execution paths, confusion, or leakage of prior context into the wrong workflow.

Vague Triggers

Medium
Confidence
94% confidence
Finding
The new-user mode is triggered by vague free-form phrases such as 'this how to use', 'first time using', or 'show me around', without strong boundary checks. That makes it easy for ordinary conversational text or quoted user content to redirect the interaction into onboarding mode, bypassing normal routing and potentially altering task handling in ways the user did not explicitly intend.

Natural-Language Policy Violations

Medium
Confidence
94% confidence
Finding
The instruction '对用户一律说人话' explicitly requires a specific language register for all user communication, and in this Chinese-language context functions as a blanket language/locale constraint. The file does not offer a user choice or opt-in for another language, which matches the policy category for forced language behavior.

Natural-Language Policy Violations

Medium
Confidence
93% confidence
Finding
The entire skill file is written as normative guidance in Chinese and does not indicate that users may choose another language or locale. Under the policy rule, a skill that effectively constrains interaction to a specific language without opt-in should be flagged unless the locale limitation is explicitly justified.

Natural-Language Policy Violations

Medium
Confidence
95% confidence
Finding
The file includes natural-language comments entirely in Chinese, which imposes a specific language on maintainers or auditors reading the skill without any opt-in or documented locale constraint. Under the policy rule, language-specific instructions or descriptions should either offer a choice or clearly justify the locale restriction.

Static analysis

No suspicious patterns detected.