Back to skill

Security audit

plan-to-eat-cli

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed Plan to Eat CLI helper that can read and change meal-planning data, with credentials and installation behavior called out plainly.

Install only if you are comfortable letting a CLI access and modify your Plan to Eat account. Prefer an already installed or verified CLI, keep the npm package version pinned, avoid pasting credentials into chat, and be aware that planner, freezer, and shopping-list write commands take effect immediately.

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

Third-Party npm Package Retrieval and Execution

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 35–49
Vulnerability Type: Supply-chain exposure through externally retrieved npm packages
Risk Level: Medium

Vulnerable Code Snippet:

bash
npx -y -p plan-to-eat-mcp@0.7.3 plan-to-eat --version # x-release-please-version
bash
npm i -g plan-to-eat-mcp@0.7.3 # x-release-please-version

The surrounding instructions direct the agent to execute the first command automatically if the CLI is unavailable. The global installation command is presented to the user rather than intended for automatic execution.

Technical Analysis

The Skill retrieves the plan-to-eat-mcp@0.7.3 package from the npm registry and executes its plan-to-eat binary. The downloaded implementation and its transitive dependencies are not present in the audited project, so their behavior cannot be verified from SKILL.md.

The explicit version pin reduces exposure to unexpected future releases, and the document recommends npm provenance and signature verification. Nevertheless, npx -y permits package retrieval and execution without interactive package-installation approval. npm package lifecycle scripts and executable entry points can run code with the permissions of the invoking user.

Exploitation depends on compromise or malicious behavior in the referenced package, one of its transitive dependencies, the registry delivery path, or the local npm resolution environment. No evidence in the audited file establishes that the named package is currently malicious.

Attack Path

  1. The plan-to-eat executable is unavailable on the host.
  2. The agent follows the setup instructions and runs: npx -y -p plan-to-eat-mcp@0.7.3 plan-to-eat --version.
  3. npm resolves and downloads the package and its required dependency graph from an external registry.
  4. npm executes applicable installation behavior and the package-provided binary.
  5. If the retrieved package ...[truncated 1417 chars]
Remediation
View remediation

Remediation Suggestions

  1. Avoid automatic npx -y retrieval and execution. Require explicit user approval before downloading or executing a package that is not already installed.
  2. Move package installation into a separately reviewed provisioning process rather than performing it during Skill execution.
  3. Verify npm provenance, signatures, package identity, and expected integrity before running the binary:
    bash
    npm audit signatures
    
  4. Prefer an internally mirrored or otherwise trusted immutable artifact, with integrity hashes validated before use.
  5. Audit and lock the complete transitive dependency graph rather than relying solely on a top-level version pin.
  6. Disable npm lifecycle scripts during installation where compatible, and separately review any required installation scripts.
  7. Execute the CLI with least privilege in a restricted environment that exposes only the required credentials, files, and network destinations.
  8. Do not perform global installation automatically. If installation is necessary, clearly disclose its filesystem scope and obtain explicit user authorization.
  9. Rotate Plan to Eat credentials and inspect the host if package-integrity verification fails or an unexpected package is executed.
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 (2)

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.