T08 · Insecure Dependencies
- Location
SKILL.md:20- Finding
Unpinned Remote Package Execution and Inconsistent Package Identity
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:20-25,README.md:18-24,package.json:2
Vulnerability Type: Unpinned third-party package execution and package identity mismatch
Risk Level: MediumVulnerable Code
SKILL.md:20-25:json { "mcpServers": { "charter-planner": { "command": "npx", "args": ["-y", "@vbotholemu/mcp-charter-planner"] } } }README.md:18-24:json { "mcpServers": { "charter-planner": { "command": "npx", "args": ["-y", "@velocibot/mcp-charter-planner"] } } }package.json:2:json "name": "@vbotholemu/mcp-charter-planner",Technical Analysis
The documented configuration executes an npm registry package through
npx -ywithout pinning an exact version or verifying package integrity. Consequently, the code executed on a user's system is the package version currently resolved by npm, rather than a fixed artifact corresponding to the audited source.The
-yoption suppresses the package-installation confirmation prompt. If the package is absent from the local cache,npxmay download it and immediately execute its declared binary. Any future package release, compromised maintainer account, or malicious registry artifact can therefore change the effective executable after this source has been reviewed.There is also an identity inconsistency:
SKILL.mdandpackage.jsonidentify the package as@vbotholemu/mcp-charter-planner, whileREADME.mdinstructs users to execute@velocibot/mcp-charter-planner. These are distinct npm package identities. A user following the README may execute a package that does not correspond to the reviewed project.No malicious behavior was found in the reviewed TypeScript implementation itself. The risk arises from the mutable and inconsistent external installation instructions.
Attack Path
- An attacker publishes or gains co ...[truncated 1466 chars]
- Remediation
View remediation
Remediation Suggestions
- Choose one verified npm package identity and use it consistently in
SKILL.md,README.md, andpackage.json. - Pin the package to an exact reviewed version, for example:
json { "command": "npx", "args": ["--yes", "@vbotholemu/mcp-charter-planner@1.0.0"] } - Prefer installing from a lockfile-controlled deployment or a verified local artifact rather than resolving a mutable package every time the MCP server starts.
- Publish and verify package provenance, checksums, and registry ownership. Where supported, enforce npm provenance attestations and integrity validation.
- Avoid automatic confirmation suppression when package retrieval is unexpected. Clearly inform users that
npxmay download and execute external code. - Run the MCP server as a dedicated, least-privileged user without unnecessary credentials, sensitive environment variables, or write access to important files.
- Add release controls such as mandatory multifactor authentication, protected publishing workflows, dependency review, and automated package-content comparison against the audited source.
- Choose one verified npm package identity and use it consistently in
