Back to skill

Security audit

Create MP Skill

Security checks for vulnerabilities and agentic risk

Overview

The skill has a coherent purpose, but it asks the agent to run and trust an unpinned external npm CLI that can modify the project.

Review carefully before installing. Use a pinned or locally locked mp-skills version, verify the package source, run it in a version-controlled project, and inspect the generated files and app.json diff before committing or deploying.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:134
Finding
Execution of an Unpinned npm Package Through npx<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, line 134 **Vulnerability Type**: Unpinned third-party executable dependency **Risk Level**: Medium ### Vulnerable Code ```bash npx mp-skills --help ``` The same unpinned package is also referenced for environment setup: ```bash npx mp-skills setup ``` ### Technical Analysis The workflow directs the agent or user to invoke the `mp-skills` npm package through `npx` without specifying an audited version, requiring a lockfile, verifying package integrity, or restricting installation to an approved registry. If the package is not already installed locally, `npx` may retrieve and execute the current package version available from the configured npm registry. Consequently, the code executed at audit time can differ from the code executed later. The output of `npx mp-skills --help` is then trusted to identify the locations of `wxa-skills-generate` and `wxa-skills-validate`. The workflow subsequently reads instructions from those resolved locations and executes their `validate.mjs`, `execute.mjs`, and `render.mjs` scripts. This extends trust from an unpinned package to further package-controlled instructions and executable files. No evidence establishes that the current `mp-skills` package is malicious. The vulnerability is the unsafe dependency acquisition and execution model, which creates a supply-chain attack opportunity. ### Attack Path 1. An attacker compromises the upstream `mp-skills` package, its publisher account, the configured package registry, or a dependency included in a future release. 2. The user or agent runs `npx mp-skills --help` or `npx mp-skills setup`. 3. `npx` retrieves and executes the attacker-controlled or unexpectedly modified package version. 4. The compromised package executes code with the privileges of the invoking user. 5. The package can return attacker-controlled generator and validator paths. 6. Following the documented workflow, the agent reads instructions ...[truncated 930 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin `mp-skills` to a specific reviewed version rather than resolving the latest available release: ```bash npx mp-skills@<reviewed-version> --help ``` 2. Prefer installing the dependency through a committed lockfile from an approved registry, and then prohibit implicit downloads: ```bash npm ci npx --no-install mp-skills --help ``` 3. Record and verify the expected package integrity hash. Use registry allowlisting, package signatures, or provenance verification where supported. 4. Validate that the resolved generator and validator directories are located under the expected verified package installation directory before reading instructions or executing scripts from them. 5. Do not automatically trust paths printed by package output. Reject absolute or unexpected paths outside the approved installation root and resolve symbolic links before validation. 6. Review and pin the transitive dependency graph. Enable automated dependency scanning and require explicit approval before upgrading `mp-skills`. 7. Execute generator and validator scripts in a constrained environment with minimum filesystem access, restricted network access, and no unnecessary credentials. 8. Replace the setup instruction with a version-pinned, integrity-verified installation procedure and document the exact approved package version. ]]>
Vulnerability Patterns
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (9)

Missing User Warnings

Medium
Confidence
87% confidence
Finding
The skill is designed to generate code and register the new skill in `app.json`, but it does not clearly warn the user up front that repository files will be created or modified. In an agentic context, silent workspace mutation can lead to unintended changes, accidental commits, or corruption of an existing project, especially because the workflow includes repeated fix-up loops until validation passes.

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding
The skill depends on invoking `npx mp-skills` without pinning an exact package version. `npx` can fetch and execute whatever version is currently published or otherwise resolved in the environment, which creates a supply-chain risk and can change behavior between runs. In this skill, that command is a prerequisite for discovering paths and driving subsequent generation/validation workflow, so a compromised or breaking upstream release could affect the whole project.

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding
Referencing `npx mp-skills setup` without a pinned version exposes users to execution of an unpinned remote package. Because setup prepares the development environment, unexpected package changes or a malicious publish could lead to arbitrary code execution in the developer context or project misconfiguration.

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding
The reference material explicitly instructs use of `npx mp-skills --help` to discover tool paths, but the package version is not fixed. Even seemingly harmless help commands still execute package code, so a compromised or incompatible version can alter output, misdirect later file reads, or run arbitrary install-time/runtime logic.

Missing User Warnings

Medium
Confidence
89% confidence
Finding
Step 2 instructs creation of files under `skills/<skill-name>/` but does not include an explicit write warning or consent checkpoint before local filesystem changes. In this context the skill is a code generator, so file writes are expected, but the lack of prominent notice increases the risk of surprising or unsafe modifications in the user’s project.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding
Step 3 tells the agent to run `npx mp-skills --help` and then trust its output to locate additional skill directories. Because the command is unpinned, an attacker controlling package resolution or a malicious upstream release could influence both executed code and the paths later consumed by the workflow.

Skill Enumeration

Medium
Category
Agent Snooping
Content
输出底部会显示:
```
工具型 Skill 路径(供 AI 模型引用):
  wxa-skills-generate: /Users/xxx/.mp-skills/skills/wxa-skills-generate/SKILL.md
  wxa-skills-validate: /Users/xxx/.mp-skills/skills/wxa-skills-validate/SKILL.md
```
Confidence
80% confidence
Finding
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Skill Enumeration

Medium
Category
Agent Snooping
Content
```
工具型 Skill 路径(供 AI 模型引用):
  wxa-skills-generate: /Users/xxx/.mp-skills/skills/wxa-skills-generate/SKILL.md
  wxa-skills-validate: /Users/xxx/.mp-skills/skills/wxa-skills-validate/SKILL.md
```

记录两个路径(去掉末尾的 `/SKILL.md`):
Confidence
80% confidence
Finding
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding
The closing instruction again asks users to run `npx mp-skills setup` without a pinned version, repeating the same supply-chain risk. Since setup changes local environment and project state, this is materially riskier than a purely informational command and can affect all downstream usage of the skill.

Static analysis

No suspicious patterns detected.