Back to skill

Security audit

plan-to-eat

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed Plan to Eat helper that requires user-supplied credentials and gives the agent meal-planning read/write tools, with ordinary third-party installation caveats.

Install only if you trust the Plan to Eat MCP package and publisher. Keep the version pinned, verify npm signatures/provenance where possible, avoid pasting your password into chat, and consider disabling or protecting the session cache if shared-machine access is a concern.

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:40
Finding
Unverified Third-Party Package and Repository Code Execution<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:40-51`, `SKILL.md:65-71` **Vulnerability Type**: Third-party supply-chain code execution **Risk Level**: Medium ### Vulnerable Code ```bash # Claude Code: claude mcp add plan-to-eat -- npx -y plan-to-eat-mcp@0.7.3 # x-release-please-version # Claude Desktop, Cursor, Windsurf, Cline, Zed — the same stdio block: # "command": "npx", "args": ["-y", "plan-to-eat-mcp@0.7.3"] # x-release-please-version # To skip the per-launch npx resolve, install once and use the # `plan-to-eat-mcp` bin as the command with no args: npm i -g plan-to-eat-mcp@0.7.3 # x-release-please-version ``` ```bash git clone https://github.com/alex-zwingli/plan-to-eat-mcp.git cd plan-to-eat-mcp && npm install && npm run build claude plugin marketplace add "$(pwd)" claude plugin install plan-to-eat@plan-to-eat ``` ### Technical Analysis The documented installation paths download and execute third-party code that is not present in the audited project. The npm path invokes a registry package through `npx` or installs it globally, allowing package code and applicable npm lifecycle scripts to execute with the invoking user's privileges. Although the package version is pinned to `0.7.3`, no expected integrity digest is enforced by these commands. The alternative GitHub path clones the repository's current default branch and runs `npm install` and `npm run build`. It does not check out a reviewed commit or require verification of a signed release tag. Consequently, the code executed through this path may differ from the code that was reviewed when the Skill document was published. The document states that releases use npm trusted publishing and recommends `npm audit signatures`, which reduces risk. However, verification is not made a prerequisite for execution, and the Git clone path remains mutable. This is a supply-chain exposure rather than evidence that the referenced package is currently malicious. ### Attack Path 1. An at ...[truncated 1368 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin the Git installation path to a reviewed immutable commit hash or cryptographically signed release tag rather than the mutable default branch. 2. Publish and document the expected npm package integrity digest, and require verification before installation or execution. 3. Make provenance and signature validation a mandatory pre-installation step instead of an optional post-installation recommendation. 4. Prefer installation from a reviewed lockfile with dependency versions and integrity values committed to the trusted project. 5. Run the MCP server in a sandbox or dedicated low-privilege account with access limited to the resources required for Plan to Eat integration. 6. Prevent the MCP process from receiving unrelated environment variables or filesystem access. 7. Use dedicated, revocable Plan to Eat credentials where supported, and rotate them if package or host compromise is suspected. 8. Review package lifecycle scripts and transitive dependencies before installation, and configure npm to suppress unnecessary lifecycle scripts where compatible with the package. ]]>
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

Static analysis

No suspicious patterns detected.