T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:18
- Finding
- Unpinned Third-Party Executable Installation## Vulnerability Details **File Location**: `SKILL.md`, lines 18-21 **Vulnerability Type**: Unpinned and unverified third-party dependencies **Risk Level**: Medium **Vulnerable Code**: ```bash npm install -g mineru-open-api # or via Go (macOS/Linux): go install github.com/opendatalab/MinerU-Ecosystem/cli/mineru-open-api@latest ``` ### Technical Analysis The documented installation commands retrieve and install mutable third-party executable code without pinning a reviewed version or verifying its integrity. The npm command resolves the package version according to the registry's current state and installs it globally. The Go command explicitly requests `@latest`, causing its effective contents to change as new upstream versions are published. This creates a supply-chain trust gap: the code executed by future users may differ from the code available at audit time. If the package, upstream repository, publishing credentials, registry entry, or transitive dependencies are compromised, following these instructions could install attacker-controlled code. The Skill contains no checksum, signature-verification procedure, lockfile, or other mechanism for detecting such substitution. No evidence establishes that the current `mineru-open-api` package is malicious. The finding concerns the unsafe, mutable installation mechanism. ### Attack Path 1. An attacker compromises the relevant npm package, upstream repository, maintainer account, release process, or transitive dependency. 2. The attacker publishes a malicious version that becomes the default npm release or the Go module version resolved by `@latest`. 3. A user follows the installation commands in `SKILL.md`. 4. The package manager downloads the compromised, unaudited release. 5. Malicious installation hooks or the installed CLI execute with the privileges of the user performing the installation. 6. Subsequent conversion commands may provide the compromised CLI with acc ...[truncated 800 chars]
- Remediation
- ## Remediation Suggestions - Pin both installation methods to specific versions that have undergone review. For example, use an exact npm version and an immutable Go module tag or commit rather than `@latest`. - Publish expected cryptographic checksums or signature-verification instructions for approved releases. - Prefer a project-local npm installation over a global installation, and execute the pinned binary through the project's package tooling. - Use a lockfile where applicable and review transitive dependency changes before upgrades. - Document the authoritative package and repository identities so users can detect typosquatting or dependency-confusion attempts. - Establish an explicit upgrade process that includes source review, integrity verification, and security testing before changing the pinned version. - Advise users not to install the package with administrator or root privileges and to run document conversion with least-privilege credentials in an isolated environment.
