T08 · Insecure Dependencies
- Location
skill.md:630- Finding
Execution of Unpinned Code and Dependencies from External Sources
- Content
View full analysis
- Remediation
View remediation
" git clone https://github.com/ZhenRobotics/openclaw-swarm-orchestrator.git cd openclaw-swarm-orchestrator git checkout --detach "$EXPECTED_COMMIT" test "$(git rev-parse HEAD)" = "$EXPECTED_COMMIT" || exit 1 ``` 2. Publish signed releases and verify the release signature against a documented, trusted maintainer key. Do not accept a mutable “latest release tag” as equivalent to a pinned commit. 3. Include the actual implementation, manifests, container definitions, and lockfiles in the auditable Skill artifact, or clearly identify them as external unaudited components. 4. Pin all direct and transitive Python and npm dependencies: - Use a Python lockfile or requirements file containing exact versions and cryptographic hashes. - Use `package-lock.json` or another supported lockfile and install with `npm ci`. - Prevent silent dependency updates during installation. 5. Pin every container image by immutable digest rather than a mutable tag: ```yaml image: repository/image@sha256: ``` 6. Avoid global npm installation. Install into an isolated project directory or disposable container without elevated privileges. 7. Disable or strictly review npm lifecycle scripts where feasible. Review Python build backends and source distributions before permitting build-time execution. 8. Run the service with least privilege: - Do not install or launch it as root. - Do not expose the Docker socket to the application. - Restrict filesystem mounts, Linux capabilities, environment variables, and network access. - Provide API keys only when an explicitly enabled LLM agent requires them. 9. Add automated integrity checks that fail closed before Docker, npm, pip, or application execution. Merely displa ...[truncated 105 chars]
