Back to skill

Security audit

Entrepreneur PM Framework

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly a disclosed AI-team management playbook, but it exposes sensitive Shopify admin access patterns and normalizes persistent agent/skill changes without enough user control.

Install only if you are comfortable with a management skill that steers agent routing and task templates. Before use, remove or restrict the Shopify token path, require explicit approval for any production store mutation, limit subagent secret/tool access by role, and require review before writing persistent lessons or modifying any Skill files.

Vulnerability Patterns
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • 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
  • 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 (2)

T02 · Agent Memory Poisoning

Warning
Location
SKILL.md:130
Finding
Unvalidated Agent Output Can Be Written to Persistent Memory and Skill Files<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:130-143`, with mandatory enforcement reiterated at `SKILL.md:177` **Vulnerability Type**: `T02: Agent Memory Poisoning` **Risk Level**: Medium ### Vulnerable Code Snippet ```markdown ## 任务复盘模板 任务:[一句话] 结果:✅成功 / ⚠️部分完成 / ❌失败 学到了什么: - [新发现的规律或方法] 下次更好: - [改进点] 沉淀到 Skill:是/否 → 若是,更新:[Skill 路径] ``` ```markdown **写入位置:** `/workspace/memory/learnings-[YYYY-MM].md` ``` The workflow is subsequently enforced as follows: ```markdown | 经验未沉淀 | 同样错误反复出现 | 强制执行 30 秒复盘模板 | ``` ### Technical Analysis The Skill directs the Agent to convert task results into persistent lessons under `/workspace/memory/` and optionally update a Skill path. These operations can cause information derived from current tasks, external sources, delegated agents, or tool responses to influence future sessions. The instructions do not require: - Human approval before persistent memory or Skill modification. - Validation that a proposed lesson came from a trusted source. - Separation of untrusted task content from authoritative Agent instructions. - Provenance, integrity metadata, or rollback support. - Sanitization of imperative text that could later be interpreted as instructions. This creates a memory-poisoning boundary: content that is merely data during one task can become persistent operational guidance. Updating a Skill is particularly sensitive because a poisoned instruction may be loaded automatically or treated as trusted in later sessions. ### Attack Path 1. An attacker controls or influences a task description, retrieved webpage, document, delegated-agent response, or other content processed by the Agent. 2. The content contains deceptive operational guidance presented as a lesson, requirement, or successful procedure. 3. During the mandatory retrospective, the Agent summarizes that guidance as something it “learned.” 4. The Agent writes the guidance to `/workspace/memory/learnings-[YYYY-MM].md` or elects to updat ...[truncated 995 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Require explicit human approval before writing task-derived information to persistent memory. 2. Require a separate, stronger approval before modifying any Skill file. 3. Treat task text, web content, documents, and delegated-agent responses as untrusted data rather than authoritative instructions. 4. Store candidate lessons in a quarantine or review file before promoting them to trusted memory. 5. Record provenance for every lesson, including the source task, source URLs or files, authoring Agent, timestamp, and reviewer. 6. Strip or flag imperative instructions, tool commands, credential references, external URLs, and changes to safety constraints. 7. Limit memory writes to an allowlisted directory and prohibit task-selected Skill update paths. 8. Use append-only versioning, integrity checks, and rollback support for persistent memory and Skill changes. 9. Define a policy that persistent lessons may describe observations but may not introduce new permissions, suppress approvals, or override system safety requirements. ]]>

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
references/agent-capabilities.md:45
Finding
Administrative Credential Path Is Exposed to Broadly Privileged Delegated Agents<![CDATA[ ## Vulnerability Details **File Location**: `references/agent-capabilities.md:7-8`, `references/agent-capabilities.md:40`, and `references/agent-capabilities.md:45-48` **Vulnerability Type**: `T05: Unauthorized Access and Privilege Escalation` **Risk Level**: Medium ### Vulnerable Code Snippet The capability matrix grants broad privileges and states that spawned subagents inherit the main Agent's access: ```markdown | **主 Agent (Leevar)** | 全部 MCP 工具 | 所有 Skill | 任意 | 直接执行长时任务 | | **sessions_spawn subagent** | 继承主 Agent | 需在任务包中指定 | 文件/报告 | 持久状态记忆 | ``` The documented execution capability includes general-purpose shell and network tools: ```markdown ### exec - ✅ 可运行 Python3、Node.js、curl、bash ``` The same document reveals the exact location and variable name of an administrative Shopify credential: ```markdown ### Shopify API - GraphQL: `https://nsb9ct-sc.myshopify.com/admin/api/2024-01/graphql.json` - REST: `https://nsb9ct-sc.myshopify.com/admin/api/2024-01/{resource}.json` - Token: 在 `/home/minimax/.openclaw/secrets/.env` 的 SHOPIFY_ADMIN_TOKEN ``` ### Technical Analysis The Skill documents a sensitive credential's exact filesystem path and environment-variable name while also describing a delegation model in which spawned subagents inherit the main Agent's broad capabilities. General-purpose `Python3`, `Node.js`, `curl`, and `bash` access can potentially be used to read local files and send authenticated API requests. This exceeds minimum privilege for many declared functions, such as market analysis, social-media drafting, supplier research, content creation, task planning, and visual verification. Those tasks do not need access to a Shopify administrative credential. The document does include an “Iron Rule” prohibiting printing or recording complete tokens. That policy reduces accidental disclosure but does not enforce access control. A prompt-injected or compromised agent can still read and directly use a secret without printing it. No ...[truncated 1785 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Remove the credential filesystem path and variable name from general capability documentation. 2. Replace direct secret access with a dedicated Shopify tool that injects credentials internally and never returns them to the Agent. 3. Do not allow spawned agents to inherit all main-Agent permissions by default. 4. Define per-role capability allowlists: - Research agents should receive search and read-only output tools. - Content agents should receive only the required content and file-writing tools. - Shopify agents should receive only narrowly scoped Shopify operations. 5. Deny delegated agents direct read access to secret directories. 6. Separate read-only Shopify operations from mutations and require explicit human approval for updates or deletions. 7. Use short-lived credentials where supported and restrict each credential to the minimum Shopify scopes required. 8. Add destination allowlisting so credential-bearing requests can only reach the approved Shopify hostname and API paths. 9. Maintain audit logs for secret use and administrative API mutations without logging token values. 10. Rotate `SHOPIFY_ADMIN_TOKEN` if there is any reason to believe broadly privileged agents have already accessed it. ]]>
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • 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
Findings (5)

Vague Triggers

High
Confidence
96% confidence
Finding
The listed trigger phrases are common operational terms rather than distinctive invocation tokens, so they are likely to collide with everyday management or planning dialogue. This increases the chance that the skill activates spuriously and influences agent behavior, including forced routing and mandatory skill usage, outside its intended context.

Vague Triggers

High
Confidence
96% confidence
Finding
The listed trigger phrases are common operational terms rather than distinctive invocation tokens, so they are likely to collide with everyday management or planning dialogue. This increases the chance that the skill activates spuriously and influences agent behavior, including forced routing and mandatory skill usage, outside its intended context.

Natural-Language Policy Violations

Medium
Confidence
90% confidence
Finding
The skill metadata and body are written to operate in Chinese and present the framework as mandatory, without indicating user language preference handling or opt-in. This can cause misunderstanding, inaccessible outputs, or unintended constraint of downstream agents in multilingual settings, especially when the skill may already activate too broadly.

Natural-Language Policy Violations

Medium
Confidence
94% confidence
Finding
Line L97 states '中文说明 + 英文可直接使用的文案', which prescribes a fixed language/locale behavior. Under the policy, forcing a specific language without offering user choice or opt-in is a natural-language policy violation.

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The example task package explicitly instructs an agent to perform live Shopify REST API updates directly in production and only verify by reading the modified field afterward. In an agent-skill context focused on task delegation and execution quality, this can normalize unsafe autonomous writes to live business systems without requiring confirmation, staging, rollback planning, or change-approval safeguards, increasing the chance of accidental destructive changes.

Static analysis

No suspicious patterns detected.