T08 · Insecure Dependencies
- Location
SKILL.md:50- Finding
Unpinned Dependencies Installed with System Package Protections Disabled
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:50-54,README.md:36-41,pyproject.toml:1-3, andpyproject.toml:24-29
Vulnerability Type: Insecure dependency installation and insufficient version integrity controls
Risk Level: MediumVulnerable Code
SKILL.md:50-54:bash brew install tesseract brew install tesseract-lang pip3 install pytesseract Pillow pymupdf --break-system-packagesREADME.md:36-41:bash # OCR engine (macOS) brew install tesseract brew install tesseract-lang # Python dependencies pip3 install pytesseract Pillow pymupdf --break-system-packagespyproject.toml:1-3:toml [build-system] requires = ["setuptools>=61.0", "wheel"] build-backend = "setuptools.build_meta"pyproject.toml:24-29:toml dependencies = [ "pymupdf>=1.23.0", "pytesseract>=0.3.10", "Pillow>=10.0.0", ]Technical Analysis
The project specifies only lower bounds for its runtime and build dependencies. It provides no lockfile, exact version constraints, package hashes, or verified artifact source. Consequently, installation may resolve to future package releases that were not reviewed with this Skill.
The documented pip command also uses
--break-system-packages. This option bypasses Python's externally managed environment protection and permits pip to modify an operating-system-managed Python installation. It increases the potential scope of dependency compromise and may overwrite or conflict with packages used by other applications.No evidence was found that the currently named dependencies are malicious or typosquatted. The vulnerability is the absence of reproducible dependency integrity controls combined with instructions to disable an environment safety boundary.
Attack Path
- A user follows the installation instructions in
SKILL.mdorREADME.md. - Pip queries the user's configured package ...[truncated 1237 chars]
- A user follows the installation instructions in
- Remediation
View remediation
Remediation Suggestions
-
Remove
--break-system-packagesfrom all installation instructions. -
Require installation in an isolated virtual environment:
bash python3 -m venv .venv . .venv/bin/activate python -m pip install --upgrade pip python -m pip install -r requirements.lock --require-hashes -
Pin runtime and build dependencies to exact, reviewed versions instead of unrestricted lower bounds.
-
Generate and commit a lockfile containing hashes for every direct and transitive dependency.
-
Install with
--require-hashesso altered or substituted artifacts are rejected. -
Define and document trusted package indexes explicitly, and avoid untrusted extra indexes.
-
Regularly review pinned versions for published vulnerabilities and update them through a controlled testing process.
-
Add continuous-integration checks that reject unpinned dependencies and verify lockfile integrity.
-
