T08 · Insecure Dependencies
- Location
skill.md:302- Finding
Unpinned npm Package Is Downloaded and Executed Without Confirmation
- Content
View full analysis
Vulnerability Details
File Location:
skill.md:302
Additional Location:llms.txt:68
Vulnerability Type: Unpinned third-party dependency execution
Risk Level: MediumComplete Code Snippet:
bash npx -y chitin-mcp-serverTechnical Analysis
The documented command uses
npxto resolve and executechitin-mcp-serverfrom the npm ecosystem. It does not specify an exact package version or verify an integrity hash. The-yoption automatically accepts installation prompts, reducing the opportunity for the user to inspect the resolved package and version before execution.Consequently, the code executed by this command can change after the reviewed Skill package has been published. The MCP server's implementation is not included in the audited project, so its behavior could not be statically verified. This creates a supply-chain risk if the package, a future release, its transitive dependencies, or its maintainer account is compromised.
Attack Path
- An attacker compromises the npm package, its maintainer account, or a transitive dependency and publishes a malicious release.
- A user or agent follows the Skill documentation and runs
npx -y chitin-mcp-server. npxresolves the unpinned package to the affected release and downloads it.- The package's executable code runs locally without an interactive installation confirmation.
- The malicious payload accesses resources available to the invoking process or performs unauthorized actions under that user's privileges.
Impact Assessment
Successful exploitation would allow arbitrary code execution with the permissions of the user or agent that launches the MCP server. Depending on the execution environment, exposed resources could include local files, environment variables, wallet-related configuration, API credentials, network access, and data available to the MCP process.
The issue does not itself establish privilege escalation, persistence, or credentia ...[truncated 133 chars]
- Remediation
View remediation
Remediation Suggestions
-
Pin the dependency to an exact reviewed version rather than resolving the latest release:
bash npx -y chitin-mcp-server@<reviewed-exact-version> -
Prefer installing through a committed lockfile so the package and all transitive dependencies resolve reproducibly.
-
Verify registry provenance and package integrity before execution, including npm integrity metadata and publisher identity.
-
Remove
-ywhere unattended installation is unnecessary so users can review the resolved package before execution. -
Audit the MCP server and its dependency tree before recommending it as executable tooling.
-
Run the MCP server with least privilege in an isolated environment, exposing only the files, environment variables, credentials, and network destinations required for its operation.
-
Establish a controlled upgrade process in which newer versions are reviewed and tested before the pinned version is changed.
-
