Back to skill

Security audit

Skill Reviewer

Security checks for vulnerabilities and agentic risk

Overview

This is a coherent skill-quality reviewer, but it includes an unpinned third-party install command that could execute changing remote code before a review.

Use this only for reviewing skill files you intentionally provide. Avoid letting it run `npx molthub@latest` or install/uninstall skills automatically; prefer reviewing local supplied files, or use a pinned and verified installer in a disposable sandbox with explicit approval.

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:476
Finding
Unpinned Third-Party Package Retrieval and Execution## Vulnerability Details **File Location**: `SKILL.md`, lines 476–477 **Vulnerability Type**: Unpinned third-party dependency execution **Risk Level**: Medium ### Vulnerable Code ```bash # Install skill (if applicable) npx molthub@latest install skill-name ``` ### Technical Analysis The review workflow recommends running `npx molthub@latest`, which may retrieve and execute the latest release of a third-party npm package. The package is not pinned to a reviewed version or integrity hash, and the instruction does not require source verification or an isolated execution environment. The `@latest` tag is mutable, so the code executed when a user follows this instruction may differ from the code available when the Skill was audited. Package installation and npm lifecycle behavior can execute arbitrary code with the permissions of the Agent or user running the command. Installing a target Skill is also unnecessary when its files have already been supplied for static review. The instruction therefore exceeds the minimum privileges needed for the Skill's declared static auditing functionality. ### Attack Path 1. An attacker compromises the `molthub` package, its maintainer account, or its distribution channel, or causes an unsafe release to become the package's `latest` version. 2. A user or Agent follows the documented review workflow and runs `npx molthub@latest install skill-name`. 3. `npx` downloads the mutable latest package release from the configured npm registry. 4. The downloaded package or associated lifecycle behavior executes in the local environment. 5. Malicious package code operates with the invoking user's permissions and may access or modify resources available to that account. No compromise of the named package was established during this audit; this is a supply-chain exposure created by unpinned remote execution. ### Impact Assessment If the retrieved package is malicious or compromised, it could execute arbitrary code with the invoking us ...[truncated 601 chars]
Remediation
## Remediation Suggestions 1. Remove third-party installation from the review workflow and audit supplied Skill files directly. 2. If package execution is strictly necessary, replace `@latest` with an exact, previously audited version. 3. Verify the package owner, registry origin, release provenance, and integrity before execution. 4. Use lockfiles and registry-supported integrity hashes where applicable. 5. Disable package lifecycle scripts where feasible, such as by using an installation approach equivalent to `--ignore-scripts`, while recognizing that `npx` execution itself still runs package code. 6. Run the package in a disposable sandbox or container with: - No mounted credentials or secret-bearing home directories. - Read-only access to the target files where possible. - No unnecessary network access. - No elevated operating-system privileges. - A temporary filesystem that is destroyed after review. 7. Require explicit user approval before any network retrieval or third-party code execution. 8. Document the package dependency and required network access in the Skill's compatibility and tool restrictions.
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • 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
Findings (14)

Ae1

High
Category
analysis-evasion
Content
> 示例:`ls skills/my-skill/` 检查 `SKILL.md` 是否存在
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Vague Triggers

Medium
Confidence
95% confidence
Finding
The description says to use the skill when the user says phrases like "skill 写得怎么样" and "帮我看看这个 skill 有什么问题", which are broad review-style utterances common in normal conversation. It does not provide exclusion conditions or tighter context boundaries, so the skill could be invoked unintentionally for general discussion about skills rather than explicit auditing requests.

Natural-Language Policy Violations

Medium
Confidence
90% confidence
Finding
The manifest description is entirely in Chinese and frames the skill's behavior, examples, and outputs in Chinese without indicating that the user may choose another language. This creates a locale/language policy concern because the skill appears to impose a specific language by default rather than offering opt-in or adaptation to user preference.

Skill Enumeration

Medium
Category
Agent Snooping
Content
**示例:验证 YAML 前置信息**
```bash
# 读取前 20 行检查 YAML
head -20 skills/china-holidays/SKILL.md
```
**预期输出(正确示例):**
```yaml
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
**示例:验证 YAML 前置信息**
```bash
# 读取前 20 行检查 YAML
head -20 skills/china-holidays/SKILL.md
```
**预期输出(正确示例):**
```yaml
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
```bash
# 1. 验证 YAML 前置信息
head -20 skills/my-skill/SKILL.md
# 目视确认 YAML 有效

# 2. 统计代码块数量
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
```bash
# 1. 验证 YAML 前置信息
head -20 skills/my-skill/SKILL.md
# 目视确认 YAML 有效

# 2. 统计代码块数量
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
```bash
# 1. 验证 YAML 前置信息
head -20 skills/my-skill/SKILL.md
# 目视确认 YAML 有效

# 2. 统计代码块数量
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
```bash
# 1. 验证 YAML 前置信息
head -20 skills/my-skill/SKILL.md
# 目视确认 YAML 有效

# 2. 统计代码块数量
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
95% confidence
Finding
The skill instructs use of `npx molthub@latest install skill-name`, which pulls and executes the latest package version at runtime without pinning. That creates a supply-chain risk: if the package is compromised or a breaking/malicious release is published, the agent may execute unreviewed code during installation.

Skill Enumeration

Medium
Category
Agent Snooping
Content
npx molthub@latest install skill-name

# 阅读内容
cat skills/skill-name/SKILL.md

# 运行快速审核模板
# 如分数 < 25,考虑卸载并寻找替代
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.

Natural-Language Policy Violations

Medium
Confidence
96% confidence
Finding
This markdown file is entirely presented as a Chinese translation and invites readers to consume the guide in that language, but it does not offer any language choice or explain a justified locale restriction. The policy specifically flags language or locale constraints when a skill or guidance forces one language without opt-in.

Natural-Language Policy Violations

Medium
Confidence
86% confidence
Finding
该检查清单在可执行性评分中明确要求使用祈使句,并以中文和英文固定表达作对比示例(如“You might...”被列为不推荐),整体文档也通篇仅使用中文说明,未说明这是特定受众或地区限定的要求。作为技能审核参考文档,这可能被理解为对技能表达语言施加默认限制,缺少用户语言偏好或适用范围说明。

Natural-Language Policy Violations

Medium
Confidence
85% confidence
Finding
该参考文档整体以中文编写,并多处直接给出应如何撰写技能说明与指令的示例,但没有说明这是面向特定中文受众的区域性文档,也没有提供语言选择或用户 opt-in。根据规则,强制特定语言而无选择或明确正当化,属于自然语言政策风险。

Static analysis

No suspicious patterns detected.