T08 · Insecure Dependencies
- Location
requirements.txt:1- Finding
Unpinned Third-Party Dependencies Create Supply-Chain Exposure
- Content
View full analysis
=1.23 pandas>=1.5 scipy>=1.10 matplotlib>=3.6 dimod>=0.12 dwave-neal>=0.6,<0.7 ``` `README.md:50-51`: ```bash pip install -r requirements.txt python scripts/run_pipeline.py ``` `examples/demo_synthetic.md:7-8`: ```bash pip install -r requirements.txt # or: pip install dimod dwave-neal numpy pandas scipy matplotlib python scripts/run_pipeline.py ``` ### Technical Analysis The installation instructions direct users to install packages using broad version constraints. Except for the major-version upper bound on `dwave-neal`, these constraints allow future package releases to be selected without additional review. No lock file, package hashes, or trusted-index restrictions are provided. Python package installation may run package build or installation logic with the privileges of the invoking user. Consequently, compromise of an allowed upstream release, package-index account, or configured package source could turn the documented installation step into a code-execution channel. Mutable dependency resolution can also introduce incompatible releases that change numerical behavior without corresponding changes to this repository. This finding does not establish that any currently listed package is malicious. It identifies an avoidable supply-chain trust boundary created by installing unresolved future versions. ### Attack Path 1. An attacker compromises an allowed dependency release, its publisher account, or a package source configured in the target environment. 2. The attacker publishes a version satisfying one of the broad constraints. 3. A user follows the documented `pip install -r requirements.txt` command. 4. The resolver selects ...[truncated 879 chars]- Remediation
View remediation
