Back to skill

Security audit

Skill Writer

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly matches its purpose, but its publishing instructions run a mutable external CLI version that should be reviewed before use.

Review before installing or using this skill for publishing. If you use it, prefer a pinned and reviewed molthub CLI version, run publishing from a constrained environment, and use narrowly scoped registry credentials.

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:390
Finding

Execution of an Unpinned npm Package Through a Mutable Release Tag

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 51 and 390-407
Vulnerability Type: Unpinned third-party dependency execution
Risk Level: Medium

Vulnerable Code

At line 51:

bash
npx molthub@latest search "your-slug"

Publishing commands at lines 390-407:

bash
# Publish a new skill
npx molthub@latest publish ./skills/my-skill \
  --slug my-skill \
  --name "My Skill" \
  --version 1.0.0 \
  --changelog "Initial release"

# Update an existing skill
npx molthub@latest publish ./skills/my-skill \
  --slug my-skill \
  --name "My Skill" \
  --version 1.1.0 \
  --changelog "Added new section on X"

# Verify it's published
npx molthub@latest search "my-skill"

Technical Analysis

The skill directs an agent to invoke molthub@latest through npx. When the package is not already installed, npx can retrieve it from the configured npm registry and immediately execute its code. The latest tag is mutable and does not identify a fixed, previously reviewed package version.

This means the code executed by the documented commands can change after the skill has been reviewed. A compromised package release, maintainer account, registry, or package distribution process could cause arbitrary package code to run when an agent follows these otherwise legitimate instructions.

The repository contains no evidence that the referenced package is currently malicious. The confirmed issue is the unsafe dependency execution pattern and the absence of version pinning, integrity validation, provenance checks, or isolation requirements.

Attack Path

  1. An attacker compromises the package maintainer account, publishing process, registry entry, or another mechanism controlling the molthub package.
  2. The attacker publishes a malicious version and assigns it to the mutable latest tag.
  3. A user or agent follows the skill's slug-checking, publishing, updating, or verification instructions.
  4. npx resolves molthub@latest and downlo ...[truncated 1009 chars]
Remediation
View remediation

Remediation Suggestions

  1. Replace the mutable latest tag with an exact, reviewed version:
bash
npx --yes molthub@<reviewed-exact-version> search "your-slug"
npx --yes molthub@<reviewed-exact-version> publish ./skills/my-skill \
  --slug my-skill \
  --name "My Skill" \
  --version 1.0.0 \
  --changelog "Initial release"
  1. Record the selected version in a lockfile and verify its package integrity before use. Update the pin only after reviewing the new release and its dependency changes.

  2. Document the expected npm registry, official package name, and trusted publisher identity to reduce dependency-confusion and registry-substitution risks.

  3. Prefer a preinstalled and organization-approved CLI in controlled environments rather than allowing npx to download executable code during each invocation.

  4. Run publishing operations in an isolated environment with least-privilege credentials. Use a narrowly scoped token that can access only the intended registry namespace and revoke it after suspected compromise.

  5. Disable unnecessary package lifecycle scripts where compatible with the trusted CLI, and monitor package provenance or signatures when the package ecosystem supports them.

  6. Apply the same pinned version consistently to search, publish, update, and verification commands so that validation and publication do not execute different package releases.

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
Findings (5)

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.