T08 · Insecure Dependencies
Warning
- Location
- INSTALL.md:7
- Finding
- Unpinned Global npm Dependencies Create a Supply-Chain Execution Risk## Vulnerability Details **File Location**: `INSTALL.md:7-14` **Additional Locations**: `mcp-reference.md:5-8`, `README.md:20-22`, `README.md:146-147` **Vulnerability Type**: Unpinned third-party dependencies installed globally **Risk Level**: Medium **Vulnerable Code**: ```bash ### Step 1: Install CLI npm install -g tick-md ### Step 2: Install MCP Server npm install -g tick-mcp-server ``` Related installation instructions also include: ```bash npm install -g clawhub npm install -g tick-md tick-mcp-server ``` ### Technical Analysis The installation instructions retrieve mutable latest versions of third-party npm packages and install them globally. They do not specify exact reviewed versions, integrity hashes, a lockfile, or another reproducible verification mechanism. npm installation may execute package lifecycle scripts. A globally installed package can place executable commands in the user's global npm binary directory. The `tick-mcp-server` package is subsequently configured as an MCP process, giving the downloaded implementation access to the project context and documented task and Git operations. The Skill package contains documentation rather than the source code of these dependencies. Consequently, auditing this repository does not establish that the code eventually downloaded from npm is equivalent to a previously reviewed release. ### Attack Path 1. An attacker compromises the npm publisher account, package contents, or another component in the dependency supply chain. 2. The attacker publishes a malicious version under one of the package names referenced by the Skill. 3. A user follows the documented unversioned global installation command. 4. npm resolves the command to the compromised latest release. 5. Malicious lifecycle code may execute during installation under the installing user's account. 6. If the compromised MCP server is configured, it may execute again whenever the editor ...[truncated 1027 chars]
- Remediation
- ## Remediation Suggestions 1. Pin every dependency to an exact reviewed version, for example: ```bash npm install -g tick-md@<reviewed-version> npm install -g tick-mcp-server@<reviewed-version> ``` 2. Publish trusted package provenance, expected integrity hashes, and verified npm publisher information in the installation guide. 3. Prefer a project-local installation with a committed lockfile over global installation where the supported environment permits it. 4. Acquire and inspect packages without lifecycle scripts first, where operationally feasible, before allowing installation scripts to run. 5. Run the MCP server with narrowly scoped filesystem and network access rather than the user's unrestricted environment. 6. Restrict the MCP process to the intended project directory and avoid exposing credentials or unrelated repositories to it. 7. Document a dependency update and re-audit process so pinned versions are upgraded only after source, provenance, and package contents have been reviewed. 8. Apply the same version-pinning and provenance requirements to the `clawhub` publishing CLI documented in `README.md`.
