T08 · Insecure Dependencies
- Location
SKILL.md:11- Finding
Unreviewed Third-Party npm Package Is Installed Globally and Executed with an API Credential
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 11-24
Vulnerability Type: Third-party dependency and supply-chain exposure
Risk Level: Mediumyaml install: command: npm args: - install - -g - "pipiads-mcp-server@1.0.3" primaryEnv: PIPIADS_API_KEY emoji: "📊" homepage: https://www.pipiads.com mcpServers: pipiads: command: pipiads-mcp-server env: PIPIADS_API_KEY: "{{PIPIADS_API_KEY}}"Technical Analysis
The skill directs the host to retrieve
pipiads-mcp-server@1.0.3from the configured npm registry, install it globally, and subsequently execute its command. The dependency's implementation is not included in the audited project, so its installation scripts and runtime behavior cannot be verified from the available source.Pinning the version reduces unexpected version drift, but it does not provide cryptographic integrity verification, a lockfile, or protection against compromise of the package publisher, registry account, or referenced release. npm lifecycle scripts may execute during installation with the permissions of the npm process. The global installation scope also exposes shared system-level package locations rather than isolating the dependency inside the project.
When the installed MCP server is launched, it is explicitly given
PIPIADS_API_KEY. Consequently, the external package is inside the credential trust boundary and can access that secret by design.Attack Path
- The skill installer executes
npm install -g pipiads-mcp-server@1.0.3. - npm retrieves the package and its transitive dependencies from the configured registry without a project lockfile or integrity value supplied by this skill.
- If the selected package release, publisher account, registry response, or a transitive dependency is compromised, malicious lifecycle code can execute during installation ...[truncated 1239 chars]
- The skill installer executes
- Remediation
View remediation
Remediation Suggestions
- Vendor or otherwise obtain and review the exact MCP server source and all transitive dependencies before deployment.
- Replace the global installation with a project-local dependency managed by a committed lockfile.
- Verify package provenance, publisher ownership, release signatures or attestations, and registry integrity metadata.
- Use deterministic installation such as
npm ciagainst an approved lockfile rather than resolving dependencies dynamically. - Disable npm lifecycle scripts during installation with
--ignore-scriptswhere the package can operate without them. If scripts are required, inspect and explicitly approve them first. - Run the MCP server in a sandbox or container with a non-privileged account, a read-only filesystem where practical, and restricted network and filesystem access.
- Provide a narrowly scoped, revocable API key with account spending or quota limits. Avoid exposing unrelated environment variables to the process.
- Monitor API-key use and outbound connections, rotate the credential periodically, and revoke it immediately if package compromise is suspected.
- Avoid global npm installation unless operationally necessary. If it is unavoidable, use an isolated npm prefix owned by a dedicated service account.
