T08 · Insecure Dependencies
- Location
SKILL.md:15- Finding
Unpinned Third-Party CLI Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 15–17; related unversioned dependency declarations also appear on line 5
Vulnerability Type: Supply-chain risk caused by mutable dependency versions
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
The documented npm installation does not specify a reviewed package version, while the Go installation explicitly selects
@latest. Both commands therefore resolve mutable upstream releases at installation time rather than an immutable, audited artifact.The npm command performs a global installation and may execute package lifecycle scripts. The Go command downloads source from an external repository and compiles whichever release currently resolves as
latest. If the package registry, upstream repository, maintainer account, or a future release is compromised, following these instructions could install and execute attacker-controlled code without any change to the reviewed Skill file.This is a dependency supply-chain weakness. The audit did not establish that the current upstream package is malicious; exploitation depends on a compromised or maliciously changed dependency release.
Attack Path
- An attacker compromises the npm package, upstream repository, maintainer credentials, or release process.
- The attacker publishes a malicious version under the existing package identity.
- A user follows the Skill's unpinned npm command or the Go command using
@latest. - The package manager retrieves the attacker-controlled release.
- Malicious npm lifecycle code may run during installation, or malicious functionality executes when
mineru-open-apiis subsequently invoked. - The payload operates with the privileges and accessible environment of the installing or invoking user.
Impact Assessment
Suc ...[truncated 520 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin both installation methods to specific, reviewed versions rather than relying on an implicit current npm release or Go's
@latest. - Prefer immutable release identifiers or reviewed commit hashes where supported.
- Publish and verify cryptographic checksums or signatures for the expected artifacts.
- Record the approved package version in the Skill metadata as well as in the installation examples so automated and manual installation paths remain consistent.
- Avoid global npm installation where practical. Use a project-local dependency, a lockfile, and a package-manager mode that enforces locked versions.
- Review npm lifecycle scripts before installation and disable them when they are unnecessary.
- Run the CLI with least privilege and provide only the files, token, and network access required for document extraction.
- Establish a controlled dependency-update process in which new releases are reviewed and tested before the pinned version is changed.
- Pin both installation methods to specific, reviewed versions rather than relying on an implicit current npm release or Go's
