Back to skill

Security audit

詹明明·大客户会不会跑

Security checks for vulnerabilities and agentic risk

Overview

The skill fits its stated business-analysis purpose, but it broadly reads shared memory and stores sensitive customer-risk observations without clear limits or user controls.

Review this skill before installing if your memory store may contain private business notes. Use anonymized customer labels, avoid storing raw revenue lists or real customer names, and inspect or clear the skill memory if your environment supports it.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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)

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
SKILL.md:24
Finding
Overbroad Shared-Memory Access and Persistent Storage of Sensitive Business Data<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, line 24 and lines 236–243 **Vulnerability Type**: Excessive memory access and insecure retention of sensitive business information **Risk Level**: Medium ### Evidence ```markdown 再读记忆 `{config.paths.memory}/zmm-concentration/` + `_通用/`。 ``` ```markdown ## 记忆 结束前自查: - **哪条前兆后来真的兑现了**(记「有效方法」,带时间)——这是本技能唯一真正的校准来源,前兆清单要靠真实流失来调 - 用户否掉了哪条禁止动作、理由是什么(记「纠正」;**他动了大客户且没出事也要记**——说明议价权判断错了) - 这门生意特有的集中度形态(季节性、项目制、招投标周期)→ 下次先排除 写入 `{config.paths.memory}/zmm-concentration/`,先查重。 ``` The first excerpt instructs the Agent to read both the Skill-specific memory directory and the shared general-memory directory. The second instructs it to persist customer-loss indicators, recommendation corrections, negotiation observations, and business-specific concentration patterns. ### Technical Analysis The Skill legitimately needs historical concentration data, but access to the entire shared `_通用/` directory is broader than the stated task requires. No file allowlist, field allowlist, sensitivity filter, or user-consent requirement limits what may be loaded from that shared location. The persistence instructions also cover commercially sensitive facts, including customer churn indicators, customer relationship outcomes, concentration patterns, and the user's responses to recommendations. The Skill does not define data minimization, anonymization, retention periods, deletion controls, or restrictions on subsequent access. This violates least-privilege and purpose-limitation principles. Unrelated information stored by other Skills or sessions can enter the current context, while sensitive findings generated here can remain available to later memory-aware workflows. The audited files do not establish that memory content is executed as instructions, so this finding does not claim confirmed code execution or memory poisoning. ### Attack Path 1. A user invokes the concentration-analysis Skill. 2. The Agent resolves `{ ...[truncated 1661 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Remove unrestricted access to `_通用/` unless a specific shared record is demonstrably required. 2. Replace directory-wide reads with an explicit allowlist of files and fields. 3. Limit reads to `{config.paths.memory}/zmm-concentration/` by default. 4. Require informed user consent before reading shared memory or writing persistent findings. 5. Store only anonymized aggregates, such as concentration percentages and dates; exclude customer names, contact details, raw revenue lists, and identifiable negotiation history. 6. Define retention periods and provide a mechanism to inspect and delete stored records. 7. Enforce access controls so unrelated Skills cannot read the concentration-analysis memory. 8. Treat all retrieved memory as untrusted data and never interpret memory content as executable instructions or higher-priority policy. 9. Document the exact purpose of each persisted field and reject fields that are not necessary for longitudinal comparison. 10. If secure memory controls are unavailable, keep the analysis session-local and disable persistent writes. ]]>
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep

Static analysis

No suspicious patterns detected.