T08 · Insecure Dependencies
- Location
SKILL.md:12- Finding
Unpinned Third-Party npm Packages Execute with Access to a Sensitive API Key
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 12–17 and 99–110
Vulnerability Type: Unpinned third-party dependency execution
Risk Level: MediumVulnerable Code
yaml install: - id: botcall-cli kind: node package: botcall bins: [botcall] label: Install botcall CLI (npm)json { "mcpServers": { "botcall": { "command": "npx", "args": ["@botcallio/mcp"], "env": { "BOTCALL_API_KEY": "bs_live_YOUR_KEY" } } } }Technical Analysis
The Skill instructs users to install
botcalland execute@botcallio/mcpwithout specifying exact package versions or integrity constraints. In particular,npx @botcallio/mcpcan retrieve and execute the package version currently selected by the npm registry when the MCP server starts.Because the MCP process is explicitly supplied with
BOTCALL_API_KEY, code contained in the resolved package can access that credential. The project includes no lockfile, integrity hash, vendored source, or other mechanism establishing the precise package contents that will execute.There is no evidence in the audited file that either named package is currently malicious. The vulnerability is the mutable and unaudited dependency execution path, which creates supply-chain exposure if a package, maintainer account, publication pipeline, or registry resolution process is compromised.
Attack Path
- An attacker compromises the npm package, a package maintainer account, or its release pipeline.
- The attacker publishes a malicious version that is selected by the unpinned
botcallor@botcallio/mcppackage reference. - A user installs the CLI or starts the configured MCP server.
- npm or
npxdownloads and executes the attacker-controlled release. - The malicious MCP package reads
BOTCALL_API_KEYfrom its environment. - The package can exfiltrate or misuse the key and execute commands with the permissions of the user running the Ag ...[truncated 738 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin both npm dependencies to exact, reviewed versions rather than relying on mutable registry resolution:
- Use an exact version for
botcall. - Replace
npx @botcallio/mcpwith an exact version or, preferably, a locally installed and locked executable.
- Use an exact version for
- Maintain a lockfile containing package versions and integrity hashes, and enforce immutable or reproducible installation in deployment workflows.
- Review package provenance, publisher identity, release history, and dependency tree before approving upgrades.
- Use npm provenance and integrity verification where available, and consider an internal package mirror or allowlist for approved artifacts.
- Run the CLI and MCP server under a restricted operating-system account or sandbox with minimal filesystem and network permissions.
- Scope
BOTCALL_API_KEYto the minimum necessary permissions and avoid exposing unrelated secrets to the process. - Rotate the API key if there is any indication that an untrusted package version has already executed.
- Establish a controlled dependency-update process that reviews and tests each new version before deployment.
- Pin both npm dependencies to exact, reviewed versions rather than relying on mutable registry resolution:
