T08 · Insecure Dependencies
- Location
SKILL.md:12- Finding
Unpinned Third-Party CLI Installation Creates a Supply-Chain Risk
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 12 and 21-23
Vulnerability Type: Unpinned third-party executable dependency
Risk Level: MediumVulnerable Code
yaml metadata: {"openclaw": {"emoji": "📄", "requires": {"bins": ["mineru-open-api"], "env": ["MINERU_TOKEN"]}, "primaryEnv": "MINERU_TOKEN", "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-api # or via Go (macOS/Linux): go install github.com/opendatalab/MinerU-Ecosystem/cli/mineru-open-api@latestTechnical Analysis
Both documented installation methods resolve a mutable version of an external executable. The npm command provides no exact package version and installs the package globally. The Go command explicitly selects
@latest. No lockfile, immutable commit, checksum, signature-verification procedure, or reviewed version is specified.Consequently, the code installed by users can change after this Skill has been reviewed without requiring any modification to
SKILL.md. If the upstream repository, package-registry account, release pipeline, maintainer account, or package distribution channel is compromised, a malicious release could be delivered through these instructions.npm packages can execute lifecycle scripts during installation unless scripts are disabled. The resulting CLI also executes with the invoking user's privileges when used. The Skill additionally expects the CLI to process potentially sensitive documents and, for some operations, have access to
MINERU_TOKEN. There is no evidence in the audited file that the current package is malicious; the confirmed issue is the absence of immutable dependency pinn ...[truncated 1576 chars]- Remediation
View remediation
Remediation Suggestions
-
Pin the npm package to an exact, reviewed version rather than relying on the registry default:
bash npm install --global --ignore-scripts mineru-open-api@REVIEWED_EXACT_VERSIONConfirm compatibility before disabling lifecycle scripts, and do not use
--ignore-scriptsif the reviewed package legitimately requires them without first assessing the resulting risk. -
Pin the Go installation to a reviewed semantic version or, preferably, an immutable commit instead of
@latest:bash go install github.com/opendatalab/MinerU-Ecosystem/cli/mineru-open-api@REVIEWED_VERSION_OR_COMMIT -
Record expected artifact checksums or signature-verification instructions and verify downloaded releases before execution.
-
Update the Skill metadata so automated installation uses the same immutable versions as the documented commands.
-
Prefer a project-local or isolated installation over a global npm installation. Run the CLI in a restricted container or sandbox with access only to the input and output paths required for conversion.
-
Provide
MINERU_TOKENonly to commands that require authenticated extraction. Use a narrowly scoped, revocable token and avoid exposing unrelated secrets to the CLI process. -
Establish a controlled dependency-update process in which new versions are reviewed, tested, and explicitly pinned before being recommended.
-
