Back to skill

Security audit

mcp-security-scan

Security checks for vulnerabilities and agentic risk

Overview

The skill itself is a simple local MCP tool-list scanner, but its unpinned global install instructions create a supply-chain and persistence concern users should review first.

Before installing, prefer a pinned release or commit and verify the downloaded files match the reviewed artifact. Avoid global installation unless you want this skill available across future agent sessions, and review the local script before use. The current bundled scanner appears local and narrow, but the documented install path can retrieve changed upstream content.

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:86
Finding
Unpinned Remote Skill Installation Creates a Supply-Chain Risk<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 86–90 **Vulnerability Type**: Unpinned dependency and mutable remote source **Risk Level**: Medium ### Vulnerable Code ```bash # One-command installation using the skills CLI npx skills add zhaoxinghua09-cell/agent-skills -g # Alternatively, clone and copy the skill manually git clone https://github.com/zhaoxinghua09-cell/agent-skills.git cp -r agent-skills/skills/mcp-security-scan ~/.workbuddy/skills/ ``` ### Technical Analysis The documented installation process retrieves software from mutable remote sources without pinning an immutable package version, Git commit, or verified release artifact. The `npx` command does not identify a fixed version of the `skills` CLI. Depending on the local npm configuration and cache state, it can retrieve and execute a newer package version than the one reviewed. The skill source is also identified only by a repository name rather than a commit digest. The alternative `git clone` process checks out the repository's current default branch. Its contents can change after this artifact has been audited. No checksum, cryptographic signature, commit identifier, or release verification is required before the files are copied into the Agent's skill directory. This issue does not establish that the current upstream package or repository is malicious. It creates a supply-chain path through which future upstream compromise or unauthorized modification could replace the reviewed content. ### Attack Path 1. An attacker compromises the npm package or account used by the unpinned `npx` command, or gains control of the referenced Git repository. 2. The attacker publishes a modified CLI package or changes the repository's default branch to include malicious skill instructions or scripts. 3. A user follows the installation commands in `SKILL.md`. 4. The mutable remote content is downloaded without integrity or provenance verification. 5. With the `npx` path, the m ...[truncated 895 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin the `skills` CLI to a reviewed version: ```bash npx skills@<reviewed-version> add zhaoxinghua09-cell/agent-skills@<immutable-reference> -g ``` 2. Pin manual installation to a full Git commit hash: ```bash git clone https://github.com/zhaoxinghua09-cell/agent-skills.git cd agent-skills git checkout <full-reviewed-commit-hash> ``` 3. Publish a SHA-256 checksum or cryptographic signature for the reviewed release and require verification before installation. 4. Prefer a versioned release archive over cloning a moving default branch. 5. Avoid global installation by default. Install into an isolated, project-specific skill directory unless global availability is explicitly required. 6. Review the downloaded manifest, skill instructions, and executable scripts before activating the skill. 7. Document the exact reviewed CLI version, repository commit, artifact checksum, and expected file list so users can verify that their installed copy matches the audited artifact. ]]>
Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (5)

Unrestricted Tool Access

Medium
Category
Excessive Agency
Content
| MCP can run shell | Command-exec flagged 高 |
| Silent data exfil | Network-egress flagged |
| Token in tool desc | Credential-exposure flagged |
| "Just enable all tools" | Least-privilege, disable extras |

## What's inside
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.

Lp3

Medium
Category
MCP Least Privilege
Confidence
70% confidence
Finding
Without declared permissions the skill's intent is opaque and cannot be validated.

Rp1

Medium
Category
MCP Rug Pull
Confidence
84% confidence
Finding
The installation guidance uses `npx skills add ...` without pinning an exact package version, which can cause users to fetch whatever version is current at execution time. If the referenced package, dependency chain, or distribution path is compromised, a user could install or run unexpected code, making this a supply-chain risk.

Natural-Language Policy Violations

Medium
Confidence
95% confidence
Finding
The module docstring and user-facing guidance are written in Chinese, and later runtime output is also hard-coded in Chinese. This creates a language/locale policy concern because the skill does not provide any opt-in, fallback, or documented justification for restricting output to a specific language.

Natural-Language Policy Violations

Medium
Confidence
93% confidence
Finding
Error messages, JSON advice text, and normal console output are all emitted in Chinese. Because these are user-facing strings and no locale choice is offered, the file enforces a specific language in a way that may violate organizational language policy.

Static analysis

No suspicious patterns detected.