T08 · Insecure Dependencies
- Location
SKILL.md:19- Finding
Unpinned Third-Party Package Execution Through npx
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 19–20
Vulnerability Type: Unpinned third-party dependency execution
Risk Level: Mediumjson "command": "npx", "args": ["@underground-cultural-district/spines-underground"]Technical Analysis
The documented MCP configuration invokes a third-party npm package through
npxwithout specifying an exact version or integrity digest. As a result, the package version resolved at execution time may change after this Skill has been reviewed.Because the project contains only documentation and does not include the package implementation, lockfile, or integrity metadata, the executable behavior of the MCP server cannot be verified from the audited artifact. A compromised publisher account, malicious package release, or compromised transitive dependency could introduce arbitrary executable behavior. This is particularly sensitive because the package advertises cryptocurrency purchase and payment-verification functionality.
Attack Path
- An attacker compromises the npm publisher account, package distribution channel, or an applicable dependency.
- The attacker publishes a malicious release under
@underground-cultural-district/spines-underground. - A user applies the configuration documented in
SKILL.md. npxresolves and downloads the mutable package release because no exact version is pinned.- The malicious package executes with the permissions and environment available to the MCP process.
- The package may access exposed environment variables or local resources, manipulate API interactions, or alter payment-related behavior, subject to the process's effective permissions.
Impact Assessment
Successful exploitation could permit arbitrary code execution within the security context of the user running the MCP server. The attainable scope depends on sandboxing and process permissions, but may include:
- Reading or modifying files accessible to the process.
- Accessing ...[truncated 502 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the package to a reviewed, exact version rather than relying on an implicitly resolved release:
json "command": "npx", "args": [ "--yes", "@underground-cultural-district/spines-underground@X.Y.Z" ] - Use a package lockfile and verify npm integrity metadata. For stronger assurance, pin the artifact by a trusted digest in a controlled installation workflow.
- Include or link to the exact reviewed source corresponding to the pinned release, enabling verification of payment handling, network requests, and data access.
- Install dependencies in advance with a reproducible deployment process instead of downloading executable code when the MCP server starts.
- Monitor the package and its transitive dependencies for ownership changes, compromised releases, known vulnerabilities, and unexpected installation scripts.
- Run the MCP server in a sandbox with minimal filesystem, environment-variable, network, and wallet permissions.
- Keep wallet signing isolated from the package. Require explicit user confirmation of the chain, token, recipient address, amount, and transaction data before signing any payment.
- Permit outbound connections only to documented and validated endpoints where operationally feasible.
- Pin the package to a reviewed, exact version rather than relying on an implicitly resolved release:
