T03 · Remote Payload Retrieval and Execution
- Location
references/INSTALL.md:7- Finding
Execution of Unpinned Code from a Mutable Remote Repository
- Content
View full analysis
- Remediation
View remediation
``` 2. Prefer a signed, immutable release artifact. Publish its expected SHA-256 digest and verify it before extraction or execution. 3. Require a committed dependency lockfile and replace `npm install` with: ```bash npm ci ``` 4. Where feasible, perform the initial dependency installation with lifecycle scripts disabled: ```bash npm ci --ignore-scripts ``` Any lifecycle scripts that are genuinely required should be documented, reviewed, and invoked explicitly afterward. 5. Vendor the executed bootstrap, verification, and MCP launcher scripts into the reviewed package, or publish their exact reviewed hashes so users can verify them before execution. 6. Configure MCP hosts to launch a verified immutable local artifact rather than a script from a mutable repository checkout. 7. Run the server with least privilege in a sandbox or container. Restrict filesystem mounts, environment variables, credentials, and network access to only what the MCP service requires. 8. Document the server's required permissions and data-access boundaries so users can make an informed decision before attaching it to an agent host. 9. Add automated integrity checks that fail closed if the repository revision, dependency lockfile, or launcher-script digest differs from the audited version. ]]>
