T08 · Insecure Dependencies
Warning
- Location
- README.md:29
- Finding
- Unpinned External Dependencies and Mutable Repository Code<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:16`, `README.md:29-36`, and `README.md:207-211` **Vulnerability Type**: Unpinned third-party packages and mutable external source installation **Risk Level**: Medium ### Vulnerable Code `SKILL.md:16`: ```bash npm install prismapi-sdk ``` `README.md:29-36`: ```bash npm install prismapi-sdk ``` ```bash yarn add prismapi-sdk pnpm add prismapi-sdk ``` `README.md:207-211`: ```bash git clone https://github.com/Strykr-Prism/PRISM-MCP-Server.git cd PRISM-MCP-Server && npm install && npm run build ``` ### Technical Analysis The documented installation commands retrieve and install mutable external code without pinning an exact npm package version or Git commit. The audited artifact contains only documentation and does not include the SDK implementation, package manifest, dependency lockfile, integrity hashes, or MCP server source. Consequently, the code executed by users is not the code covered by this audit. Package-manager installation can execute lifecycle scripts defined by the selected package or its dependency graph. The MCP installation instructions also clone the current default branch, resolve dependencies using the repository state available at installation time, and run its build script. A later release, changed default branch, compromised maintainer account, malicious transitive dependency, or registry/repository compromise could therefore change the effective payload after this skill has been reviewed. There is no evidence in the audited files that the referenced package or repository is currently malicious. The vulnerability is the unsafe and non-reproducible dependency acquisition process. ### Attack Path 1. An attacker compromises the npm package, a transitive dependency, the external GitHub repository, or an associated publisher account. 2. The attacker publishes a modified package version or commits malicious code to the repository’s default branch. 3. A user follows the docum ...[truncated 1292 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin `prismapi-sdk` to an explicitly reviewed version rather than installing the latest matching release: ```bash npm install --save-exact prismapi-sdk@<reviewed-version> ``` 2. Pin the MCP server to a reviewed immutable commit: ```bash git clone https://github.com/Strykr-Prism/PRISM-MCP-Server.git cd PRISM-MCP-Server git checkout <reviewed-full-commit-hash> ``` 3. Include a committed lockfile and use deterministic installation commands such as `npm ci` rather than unconstrained dependency resolution. 4. Publish and verify package integrity hashes or signed release provenance. Protect publisher accounts with strong multifactor authentication and restricted release permissions. 5. Disable lifecycle scripts during dependency installation when they are unnecessary: ```bash npm ci --ignore-scripts ``` If lifecycle or build scripts are required, inspect them and their transitive dependencies before execution. 6. Include the relevant SDK and MCP source code in the auditable artifact, or conduct a separate audit of the exact package version, Git commit, build scripts, and complete dependency tree. 7. Run installation and the resulting SDK in a least-privileged container or sandbox. Expose only required credentials, files, and network destinations. 8. Add automated dependency monitoring, provenance verification, vulnerability scanning, and release-diff review to the update process. ]]>
