T08 · Insecure Dependencies
- Location
SKILL.md:15- Finding
Unpinned Third-Party CLI Installation Creates Supply-Chain Risk
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 15-17
Vulnerability Type: Unpinned and mutable third-party dependencies
Risk Level: Mediumbash 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 installation commands retrieve mutable third-party packages without selecting an immutable, previously audited release. The npm command omits a version entirely, causing the package manager to resolve the current default release. The Go command explicitly selects
@latest.The npm command also performs a global installation. If a resolved package contains malicious lifecycle scripts or executable content, that code could run during installation or when the installed CLI is invoked. The Go command downloads and compiles source selected from the upstream repository; malicious code introduced into the latest release would become part of the resulting executable.
This is a supply-chain weakness rather than evidence that the currently published dependency is malicious. The effective code installed by these instructions can change after the Skill itself has been reviewed.
Attack Path
- An attacker compromises the upstream package registry account, source repository, release process, or maintainer credentials.
- The attacker publishes a malicious release of
mineru-open-apior modifies the revision resolved by@latest. - A user follows the installation instructions in
SKILL.md. - The package manager resolves and downloads the attacker-controlled release because no audited version or immutable commit is specified.
- Malicious npm installation hooks may execute during installation, or malicious functionality may execute when the installed CLI processes a document.
- The payload operates with the permissions of the installing or invoking user.
Impact Assessment
Successful ...[truncated 615 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin both installation methods to an explicitly reviewed release rather than relying on the registry default or
@latest. - For npm, specify an exact version, such as
npm install mineru-open-api@X.Y.Z, and prefer a project-local installation over a global installation where practical. - For Go, replace
@latestwith a reviewed semantic version or immutable commit. - Record and verify package integrity hashes, release signatures, and source provenance before installation.
- Use lockfiles or an internally controlled dependency mirror where the deployment model supports them.
- Review the pinned package for lifecycle scripts and transitive dependencies.
- Run the CLI with least privilege in an isolated environment or container, exposing only the documents and output directories required for the task.
- Establish a controlled update process in which new dependency releases are reviewed and tested before changing the pinned version.
- Pin both installation methods to an explicitly reviewed release rather than relying on the registry default or
