T08 · Insecure Dependencies
- Location
SKILL.md:459- Finding
Unpinned Third-Party Dependency Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 459-467
Vulnerability Type: Supply-chain exposure through unpinned dependencies
Risk Level: MediumVulnerable Code
bash # CPU version pip install paddlepaddle paddleocr # GPU version (CUDA 11.x) pip install paddlepaddle-gpu paddleocr # Additional dependencies pip install pdf2image PillowTechnical Analysis
The installation instructions retrieve and install third-party packages without version constraints, integrity hashes, a lock file, or an explicitly trusted package index. Consequently, the installed artifacts may differ between executions and can change after the skill has been reviewed.
Python package installation can execute package-controlled build or installation logic. If a dependency release or its distribution account is compromised, following these instructions could cause malicious code to run during installation. The absence of version pinning also increases the risk of incompatible or unexpectedly vulnerable transitive dependencies.
No evidence indicates that the currently named packages are malicious. The vulnerability is the unsafe, non-reproducible dependency installation process.
Attack Path
- An attacker compromises a listed dependency, its maintainer account, or an applicable package distribution channel.
- The attacker publishes a malicious release under the expected package name.
- A user follows the documented unpinned
pip installcommand. - Package resolution selects the attacker-controlled release.
- Malicious build or runtime code executes with the privileges of the user performing the installation.
Impact Assessment
Successful exploitation could execute arbitrary code with the privileges of the installing user or environment. Depending on those privileges, this may permit access to user-readable files, modification of the Python environment, theft of available credentials, or co ...[truncated 199 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin every direct dependency to a reviewed, exact version.
- Generate a lock file that also constrains transitive dependencies.
- Require package hashes, such as through
pip install --require-hashes. - Configure an explicitly trusted package index or an internally controlled dependency mirror.
- Install packages inside a dedicated virtual environment or isolated container rather than a shared or privileged interpreter.
- Regularly scan pinned packages for known vulnerabilities and review updates before changing versions.
- Document compatible CPU and GPU dependency sets separately to prevent unintended resolver behavior.
