T08 · Insecure Dependencies
- Location
SKILL.md:7- Finding
Unreviewable Globally Installed MCP Dependency Receives an API Credential
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 7–18
Vulnerability Type:T08: Insecure Dependencies
Risk Level: MediumVulnerable Code
yaml bins: - npm 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-serverThe related credential mapping continues on lines 19–20:
yaml env: PIPIADS_API_KEY: "{{PIPIADS_API_KEY}}"Technical Analysis
The skill installs
pipiads-mcp-server@1.0.3globally from the npm registry and subsequently executes its binary as an MCP server. The project contains onlySKILL.md; it does not include the dependency's source code, lockfile, integrity hash, package provenance, or an independently auditable implementation.Although the explicit version pin reduces version drift, it does not verify package integrity or prevent compromise of that published version. npm installation may execute package lifecycle scripts with the permissions of the user performing the installation. At runtime, the installed server also receives
PIPIADS_API_KEYthrough its environment.No evidence in the audited project proves that the named package is malicious. The risk arises because unreviewed third-party installation and execution form a supply-chain trust boundary while exposing a billing-capable API credential.
Attack Path
- A user or agent enables the skill and runs the declared installation command.
- npm retrieves
pipiads-mcp-server@1.0.3and its transitive dependencies from the configured registry. - Any package lifecycle scripts execute with the invoking user's privileges.
- The globally installed
pipiads-mcp-serverbinary is launched as an MCP server. - The process receives
PIPIADS_API_KEYin its environment. - If the package, a transitive ...[truncated 954 chars]
- Remediation
View remediation
Remediation Suggestions
- Prefer an auditable first-party implementation or include the MCP server source in the reviewed project.
- Verify package ownership, release provenance, signatures, and published integrity before installation.
- Use a lockfile or equivalent integrity-pinned installation process covering the package and all transitive dependencies.
- Avoid global installation. Install into a dedicated, non-privileged project environment or isolated container.
- Disable npm lifecycle scripts during installation where operationally possible, then explicitly allow only reviewed build steps.
- Run the MCP server under a restricted service account or sandbox with minimal filesystem and network access.
- Supply a narrowly scoped API key limited to the required operations, account, and spending threshold.
- Do not expose unrelated environment variables to the server process.
- Add credential rotation and revocation guidance, audit API usage, and configure alerts or limits for abnormal credit consumption.
- Document the expected network destinations and enforce an outbound allowlist where possible.
