T08 · Insecure Dependencies
- Location
SKILL.md:17- Finding
Unpinned Third-Party MCP Package Installed Globally
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 17–23 and 49–53
Vulnerability Type: Unpinned third-party dependency with global installation
Risk Level: MediumVulnerable Code
Lines 17–23:
json "install": [ { "id": "node-leadsdaddy-mcp", "kind": "node", "package": "@leadsdaddy/mcp", "bins": ["leadsdaddy-mcp"], "label": "Install LeadsDaddy MCP (npm)", }, ],Lines 49–53:
markdown Before using this skill, make sure LeadsDaddy MCP is installed and configured: ```bash npm install -g @leadsdaddy/mcptext ### Technical Analysis The skill instructs users to install and execute the mutable latest version of the third-party npm package `@leadsdaddy/mcp`. It does not specify an exact audited version, integrity hash, lockfile, or other mechanism that would ensure the installed artifact is the same one that was reviewed. The `-g` option installs the package globally. npm package installation can execute lifecycle scripts, while the installed `leadsdaddy-mcp` binary subsequently runs with the permissions of the invoking account. The package is also expected to receive the `LEADSDADDY_TOKEN` environment variable during operation. No source code for `@leadsdaddy/mcp` is included in the audited project, so its installation behavior, lifecycle scripts, token handling, and runtime behavior cannot be independently verified from this repository. There is no evidence in the reviewed file that the package is currently malicious; the vulnerability is the uncontrolled supply-chain trust boundary. ### Attack Path 1. An attacker compromises the npm publisher account, package repository, build pipeline, or another upstream distribution component for `@leadsdaddy/mcp`. 2. The attacker publishes a malicious release under the same package name. 3. A user follows the documented `npm install -g @leadsdaddy/mcp` command, which resolves the m ...[truncated 1355 chars]- Remediation
View remediation
Remediation Suggestions
- Pin
@leadsdaddy/mcpto an exact reviewed version rather than relying on the mutable latest release. - Record and verify the package's expected integrity digest through a lockfile or equivalent package-integrity mechanism.
- Prefer a project-local installation over
npm install -gso dependency resolution is reproducible and the executable is scoped to the project. - Review the package source, transitive dependencies, published artifact contents, and npm lifecycle scripts before approving a version.
- Disable npm lifecycle scripts during installation where compatible, and explicitly run only reviewed setup steps.
- Execute the MCP server as a dedicated, unprivileged account or inside a sandbox with restricted filesystem and network access.
- Provide the MCP server only the environment variables it requires. Avoid inheriting unrelated credentials from the parent process.
- Scope
LEADSDADDY_TOKENto the minimum necessary permissions, rotate it regularly, and revoke it immediately if package compromise is suspected. - Document an approved package version and upgrade-review process so new releases are not installed automatically without security validation.
- Pin
