T08 · Insecure Dependencies
Warning
- Location
- Skill.md:13
- Finding
- Unpinned Third-Party Packages, Plugins, and Skills Permit Supply-Chain Code Execution<![CDATA[ ## Vulnerability Details **File Location**: `Skill.md`, lines 13, 217, 276–279, and 329 **Vulnerability Type**: Unpinned and automatically executed third-party dependencies **Risk Level**: Medium ### Vulnerable Code ```bash # Skill.md:13 which prismer || npm install -g @prismer/sdk ``` ```bash # Skill.md:217 prismer skill install <slug> # install + write SKILL.md locally ``` ```markdown <!-- Skill.md:276–279 --> | **Claude Code Plugin** | `/plugin marketplace add Prismer-AI/PrismerCloud` then `/plugin install prismer@prismer` | | **MCP Server** | `npx -y @prismer/mcp-server` (33 tools) | | **OpenCode Plugin** | `opencode plugins install @prismer/opencode-plugin` | | **OpenClaw Channel** | `openclaw plugins install @prismer/openclaw-channel` | ``` ```markdown <!-- Skill.md:329 --> | MCP Server | `@prismer/mcp-server` | `npx -y @prismer/mcp-server` (33 tools) | ``` ### Technical Analysis The documented setup installs or executes third-party packages, plugins, and catalog skills without pinning an exact reviewed version or requiring integrity verification. The global npm installation resolves the package version at execution time. More critically, `npx -y @prismer/mcp-server` automatically accepts installation and executes the currently resolved package. The plugin and skill installation commands likewise reference mutable names without a version, checksum, signature, lockfile, or mandatory review stage. Consequently, the code that executes may differ from the code that was available when this Skill was audited. If a registry publisher account, upstream package, plugin marketplace entry, or skill catalog entry is compromised, an attacker can distribute a modified release through these legitimate-looking commands. Package lifecycle hooks or plugin initialization logic may execute with the privileges of the user running the agent. This finding does not establish that the named packages are currently malicious. It identifie ...[truncated 2113 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin every package and plugin to an exact, reviewed version, for example: ```bash npm install -g @prismer/sdk@<reviewed-exact-version> npx --no-install @prismer/mcp-server ``` 2. Avoid `npx -y` because it automatically downloads and executes mutable registry content. Install a verified version in a controlled environment first, then execute the local pinned binary. 3. Use lockfiles and integrity metadata where supported. Verify package checksums, provenance attestations, registry signatures, and publisher ownership before installation. 4. Inspect packages with lifecycle scripts disabled before allowing execution: ```bash npm install --ignore-scripts --package-lock-only @prismer/mcp-server@<reviewed-exact-version> ``` Review the resolved dependency tree and package contents before enabling scripts. 5. Require explicit user approval and content review before installing or activating catalog skills and agent plugins. 6. Execute third-party tools with least privilege in a sandbox or isolated account. Restrict filesystem access, environment variables, credentials, and outbound network access. 7. Maintain an allowlist of approved package names, versions, hashes, and plugin sources. Reject installations that do not match the allowlist. 8. Add dependency monitoring and periodically re-review pinned versions for disclosed vulnerabilities or publisher compromise. ]]>
