T08 · Insecure Dependencies
- Location
SKILL.md:5- Finding
Unpinned Third-Party CLI Dependencies
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 5
Vulnerability Type: Unpinned third-party dependencies
Risk Level: MediumVulnerable Code
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 offers three installation methods for
mineru-open-api, but none identifies an immutable, reviewed release. The npm and Python package references omit version constraints, while the Go module reference omits a version or commit. Consequently, installation can resolve to whatever release the upstream registry or repository serves at that time.This creates a supply-chain risk because the installed code may differ from the code originally evaluated with the skill. A compromised maintainer account, malicious package release, repository compromise, or unexpected upstream change could introduce executable behavior without any modification to this project.
The finding does not establish that the current upstream package is malicious. It identifies the absence of controls that would prevent a future altered release from being installed automatically.
Attack Path
- An attacker compromises an upstream package publisher, registry account, source repository, or release process.
- The attacker publishes a malicious version under the existing
mineru-open-apipackage or module name. - A user or agent installs the dependency through one of the unpinned installation entries in
SKILL.md. - The package manager resolves and installs the attacker-contr ...[truncated 913 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin npm and Python installations to specific, reviewed versions rather than resolving the latest available release.
- Pin the Go installation to a reviewed semantic version or immutable commit identifier.
- Use lockfiles and integrity hashes where the package ecosystem supports them.
- Verify package provenance, publisher identity, release signatures, and checksums before installation.
- Perform dependency and malware scanning on each approved release before updating the pinned version.
- Execute the converter with least privilege in an isolated environment that has access only to the document being processed and its designated output directory.
- Require explicit user consent before uploading sensitive documents to the external MinerU service.
