T08 · Insecure Dependencies
- Location
SKILL.md:15- Finding
Execution of Mutable, Unpinned npm Packages
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:15-17,SKILL.md:46-50, andSKILL.md:78-82
Vulnerability Type: Unsafe third-party dependency execution
Risk Level: HighVulnerable Code
SKILL.md:15-17:json "command": "npx", "args": ["-y", "@basedagents/mcp@latest"]SKILL.md:46-50:sh npm i -g basedagents basedagents registerSKILL.md:78-82:sh npx basedagents scan lodash npx basedagents scan @modelcontextprotocol/server-filesystemTechnical Analysis
The skill configures
npxto download and execute@basedagents/mcp@latestwith the-yoption, which suppresses the installation confirmation. Thelatesttag is mutable, so the package executed by future users may differ from the version available when the skill was audited.The documented global installation and scanning commands also reference
basedagentswithout an exact version or integrity constraint. Consequently, npm resolves whichever release is current at execution time. A compromised maintainer account, malicious future release, or npm supply-chain compromise could therefore replace the reviewed behavior with attacker-controlled code.The global installation recommendation increases exposure by making the downloaded executable available throughout the user's environment. No evidence establishes that the currently published packages are malicious; the vulnerability is the absence of reproducible dependency pinning and integrity verification.
Attack Path
- An attacker compromises the relevant npm package, its publisher account, or the package publication pipeline.
- The attacker publishes a malicious release and assigns it to
latest, or otherwise causes the unversioned package name to resolve to the malicious release. - A user loads the MCP configuration or follows one of the documented installation or scanning commands.
npx -ydownloads and executes the package withou ...[truncated 968 chars]
- Remediation
View remediation
Remediation Suggestions
- Replace
@basedagents/mcp@latestwith an explicitly reviewed, immutable version, such as@basedagents/mcp@1.2.3. - Pin every documented
basedagentsinvocation to an exact version rather than relying on npm's current resolution. - Remove
-yso unexpected installations are not accepted automatically. - Use a committed lockfile and npm integrity metadata to make dependency resolution reproducible.
- Prefer a project-local installation over
npm i -g, and execute the pinned local binary through an npm script. - Review package source, lifecycle scripts, ownership changes, and release provenance before upgrading.
- Where practical, vendor or mirror approved package artifacts and verify their cryptographic hashes before execution.
- Run the MCP server with least privilege, restricted filesystem access, and constrained network access.
- Keep the signing keypair outside directories accessible to package tooling and apply restrictive file permissions.
- Establish an explicit dependency-update process that requires security review before changing pinned versions.
- Replace
