T08 · Insecure Dependencies
- Location
SKILL.md:4- Finding
Unpinned Third-Party CLI Dependency
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 4
Vulnerability Type: Unpinned third-party dependency
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 installation metadata retrieves
mineru-open-apifrom npm, a Python package source used byuv, or a Go module path without specifying a reviewed version or immutable revision. The project contains no lockfile, checksum, signature requirement, vendored source, or integrity constraint.Consequently, the code installed in the future may differ from the code originally reviewed. A compromised maintainer account, package registry, release process, or upstream repository could cause installation to resolve to a malicious release. Package installation hooks or the resulting CLI could then execute attacker-controlled code. Because the CLI processes local office documents and communicates with an external service, a compromised version could also intercept document contents.
Attack Path
- An attacker compromises an upstream package publisher, registry entry, release process, or source repository associated with
mineru-open-api. - The attacker publishes malicious code under the same unpinned package or module identifier.
- The skill framework attempts to satisfy the required binary and installs the dependency through npm, uv, or Go.
- The package manager resolves the mutable identifier to the attacker-controlled release.
- Malicious code runs during ...[truncated 811 chars]
- An attacker compromises an upstream package publisher, registry entry, release process, or source repository associated with
- Remediation
View remediation
Remediation Suggestions
- Pin each installation method to an explicitly reviewed version:
- Use an exact npm package version rather than an unconstrained package name.
- Use an exact Python package version for uv.
- Use an immutable Go module version or reviewed commit revision.
- Commit appropriate lockfiles where the skill packaging format supports them.
- Verify downloaded packages using registry integrity metadata, cryptographic checksums, or publisher signatures.
- Document the expected package publisher, version, checksum, and source repository so substitutions can be detected.
- Run installation and document conversion in a sandbox with minimal filesystem, environment, and network access.
- Require explicit user consent before uploading potentially sensitive documents to the external processing service.
- Establish a controlled dependency-update process that reviews and tests new versions before changing the pins.
- Pin each installation method to an explicitly reviewed version:
