T08 · Insecure Dependencies
- Location
SKILL.md:44- Finding
Unpinned Global Installation of Mutable Third-Party CLI Packages
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:21,SKILL.md:44-50, andSKILL.md:252-256
Vulnerability Type: Unpinned third-party executable dependency
Risk Level: HighThe Skill directs users to install
mineru-open-apiglobally from npm or directly from the latest revision exposed through the Go package source. No immutable version, checksum, signature, or other integrity control is specified.yaml metadata: {"openclaw":{"emoji":"📄","homepage":"https://mineru.net","source":"https://github.com/MinerU-Extract/mineru-precision-extract","author":"OpenDataLab","requires":{"bins":["mineru-open-api"],"env":["MINERU_TOKEN"],"config":["~/.mineru/config.yaml"]},"install":[{"id":"npm","kind":"node","package":"mineru-open-api","bins":["mineru-open-api"],"label":"Install via npm"},{"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"]}]}}bash npm install -g mineru-open-apibash go install github.com/opendatalab/MinerU-Ecosystem/cli/mineru-open-api@latestThe upgrade instructions also explicitly request the latest mutable npm release:
bash npm install -g mineru-open-api@latestTechnical Analysis
Installing a package without an immutable version allows the installed executable and its transitive dependencies to change after the Skill has been reviewed. The
@latestselector explicitly resolves to whatever release the publisher or registry currently exposes.Both installation mechanisms compile or install executable third-party content. Global npm installation may also run package lifecycle scripts. Consequently, compromise of the package publisher, registry account, source repository, release process, or a transitive dependency could turn a legitimate installation instruction into arbitrary local code execution.
The project metadata identifies the ...[truncated 1554 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin npm and Go installations to specific, reviewed versions rather than using an unversioned package or
@latest. - Use npm lockfiles or equivalent reproducible dependency controls where installation architecture permits.
- Publish and verify cryptographic checksums or signed release artifacts before installation.
- Document the expected package publisher, repository, version, and integrity value so users can detect dependency confusion or repository substitution.
- Avoid global installation where possible. Run the CLI in a dedicated virtual environment, container, or restricted user context.
- Review package lifecycle scripts and transitive dependency changes before approving upgrades.
- Replace the automatic “upgrade to latest” instruction with a controlled process that pins a reviewed release.
- Do not perform installation with administrative privileges unless it is strictly required.
- Pin npm and Go installations to specific, reviewed versions rather than using an unversioned package or
