T08 · Insecure Dependencies
- Location
install.sh:48- Finding
Unpinned Third-Party Packages Create a Supply-Chain Execution Risk
- Content
View full analysis
Vulnerability Details
File Location:
install.sh:48-61; the same unsafe installation procedure is documented inSKILL.md:121-127andSKILL_zh.md:121-127
Vulnerability Type: Unpinned and unrestricted third-party dependency installation
Risk Level: MediumVulnerable Code
bash # Update pip echo "3. Update pip..." python3 -m pip install --upgrade pip echo " pip has been updated" echo "" # Install uv echo "4. Install uv (fast package manager)..." if ! command -v uv &> /dev/null; then pip3 install uv echo " uv installed successfully" else echo " uv is already installed" fi echo "" # Install MinerU uv pip install -U "mineru[all]"The documentation instructs users to execute the equivalent commands:
bash pip install --upgrade pip pip install uv uv pip install -U "mineru[all]"Technical Analysis
The installer does not pin exact versions of
pip,uv, MinerU, or MinerU's transitive dependencies. It also installs the completemineru[all]optional dependency set and uses the-Uupgrade option.Consequently, the code installed by the script depends on whichever package versions are available from the configured package index at execution time. Package installation can execute package build hooks and other installation-time code. A compromised upstream release, compromised configured index, dependency-confusion condition, or malicious future transitive dependency could therefore result in arbitrary code execution.
Upgrading
pipin the active Python environment also modifies shared development tooling beyond the minimum functionality required by this Skill. The absence of a lockfile and integrity hashes prevents users from verifying that reviewed dependency artifacts are the artifacts ultimately installed.Attack Path
- An attacker compromises a dependency release, a transitive dependency, or a package source configured ...[truncated 1187 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin exact versions of MinerU,
uv, and all transitive dependencies in a reviewed lockfile. - Require cryptographic hashes for downloaded artifacts where supported.
- Install dependencies from an explicitly configured, trusted package index.
- Create and use a dedicated virtual environment instead of modifying the active or system Python environment.
- Remove
-Ufrom routine installation unless an explicit, reviewed upgrade is intended. - Avoid installing
mineru[all]; select only the optional features required by the Skill. - Do not upgrade
pipimplicitly. Document a tested version range or provision a pinned version inside the isolated environment. - Add dependency scanning and lockfile review to the release process.
- Pin exact versions of MinerU,
