T08 · Insecure Dependencies
- Location
assets/requirements.txt:2- Finding
Unpinned Third-Party Dependencies Permit Supply-Chain Drift
- Content
View full analysis
Vulnerability Details
File Location:
assets/requirements.txt:2-5,assets/requirements-optional.txt:4-6, andassets/requirements-dev.txt:5-16
Vulnerability Type: Unpinned third-party dependencies without integrity verification
Risk Level: MediumVulnerable Code
assets/requirements.txt:2-5:text pywinauto>=0.6.8 pywin32>=305 comtypes>=1.2.0 Pillow>=9.0.0assets/requirements-optional.txt:4-6:text opencv-python>=4.5.0 numpy>=1.20.0 wx-ocr>=1.0.0assets/requirements-dev.txt:5-16:text pylint>=2.17.0 # Type checking mypy>=1.0.0 # Testing pytest>=7.0.0 pytest-cov>=4.0.0 # Formatting (optional) black>=23.0.0 isort>=5.12.0Technical Analysis
Every dependency uses an open-ended minimum-version constraint. Consequently, two installations performed at different times can resolve to different package versions, including future releases that were never audited with this project. The manifests also provide no package hashes, lock file, or index restriction that would verify the provenance and integrity of downloaded distributions.
Python packages can execute code during installation and subsequently run with the privileges of the invoking user when imported. This risk is especially material for this project because its dependencies participate in desktop automation, OCR, screenshots, clipboard operations, and Windows API access. For example, the optional
wx-ocrpackage receives temporary screenshots that may contain sensitive window content.This finding does not demonstrate that any currently named dependency is malicious. It identifies a supply-chain weakness that would make a compromised or unexpectedly changed release immediately eligible for installation.
Attack Path
- An attacker compromises a permitted dependency release, its maintainer account, or the package index used by pip.
- The attacker publishes a malicious vers ...[truncated 1061 chars]
- Remediation
View remediation
Remediation Suggestions
- Replace minimum-version ranges with exact, reviewed versions for production installations.
- Generate a reproducible lock file for core, optional, and development dependency groups.
- Record cryptographic hashes and require verification during installation, such as with
pip install --require-hashes. - Configure an explicitly trusted package index or an internally controlled package mirror.
- Review dependency provenance, release signatures, maintainers, and transitive dependencies before upgrades.
- Run dependency vulnerability and provenance scanning in continuous integration.
- Install dependencies in a dedicated virtual environment under a non-administrative account.
- Treat OCR dependencies as sensitive components because they process screenshots, and test upgrades in an isolated environment before deployment.
