T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:4
- Finding
- Unpinned Third-Party CLI Installation<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:4` **Vulnerability Type**: Unpinned and mutable third-party dependencies **Risk Level**: Medium ### Vulnerable Code Snippet ```yaml metadata: {"openclaw":{"emoji":"📄","requires":{"bins":["mineru-open-api"]},"install":[{"id":"npm","kind":"node","package":"mineru-open-api","bins":["mineru-open-api"],"label":"Install via npm"},{"id":"uv","kind":"uv","package":"mineru-open-api","bins":["mineru-open-api"],"label":"Install via uv"},{"id":"go","kind":"go","package":"github.com/opendatalab/MinerU-Ecosystem/cli/mineru-open-api","bins":["mineru-open-api"],"label":"Install via go install","os":["darwin","linux"]}]}} ``` ### Technical Analysis The skill provides three installation methods for `mineru-open-api`, but none specifies a fixed version, immutable commit, checksum, or cryptographic signature: - The npm package is referenced only by package name. - The uv package is referenced only by package name. - The Go package is referenced by a mutable repository path without a version or commit. Consequently, installation resolves whatever package version or repository state the upstream source serves at that time. That effective code was not included in the audited project and can change independently after review. This creates a supply-chain risk. If a package registry, source repository, release process, or maintainer account is compromised, a malicious future release could be delivered through the legitimate installation instructions. Package installation hooks or later execution of the installed CLI could then run attacker-controlled code. ### Attack Path 1. An attacker compromises an upstream package publisher, repository, release process, or associated maintainer account. 2. The attacker publishes a malicious version of `mineru-open-api` under the expected package name or repository path. 3. A user or agent activates the skill on a system where the required binary is unavailable. 4. The skill i ...[truncated 888 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin the npm and Python/uv dependencies to exact, reviewed versions rather than resolving the latest release. 2. Pin the Go dependency to an immutable reviewed release or commit. 3. Record and verify package checksums or cryptographic signatures where supported. 4. Use lockfiles or equivalent dependency manifests to constrain transitive dependencies. 5. Verify that each package originates from the expected publisher and source repository. 6. Disable package installation scripts where practical, or review them before allowing execution. 7. Execute the converter with minimal filesystem and network permissions, preferably in an isolated container or sandbox. 8. Establish a controlled update process in which new dependency versions are reviewed before pins are changed. ]]>
