T08 · Insecure Dependencies
- Location
README.md:36- Finding
Unpinned Third-Party Dependency Installation
- Content
View full analysis
Vulnerability Details
File Location:
README.md:36; also referenced byscripts/tts_synthesize.py:25
Vulnerability Type: Unpinned dependency installation from a mutable package index
Risk Level: LowVulnerable Code Snippet:
README.md:36bash pip install requestsThe import-error guidance in
scripts/tts_synthesize.py:25additionally recommends installing the same unpinned package with the--break-system-packagesoption.Technical Analysis
The installation documentation identifies the dependency only by its package name. It does not constrain the package to a reviewed version or verify its integrity with a cryptographic hash. Consequently, the installed code depends on the mutable state of the configured Python package index at installation time.
While
requestsis a legitimate and well-known package and there is no evidence that this project intentionally retrieves a malicious dependency, the lack of version and integrity controls creates supply-chain exposure. A compromised upstream release, package-index account, mirror, or resolver configuration could cause users to install code different from the version reviewed by the project author.Recommending
--break-system-packagesfurther weakens isolation by allowing pip to modify a system-managed Python environment. This can replace or conflict with packages used by other applications on the same host.Attack Path
- An attacker compromises the upstream package distribution channel, a configured package mirror, or the maintainer account for a future dependency release.
- A user follows the project documentation and executes
pip install requestswithout a version or hash constraint. - Pip resolves and downloads the attacker-controlled or otherwise compromised release.
- Package-controlled installation or runtime code executes with the privileges of the user running pip.
- If installation is performed in a privileged or s ...[truncated 678 chars]
- Remediation
View remediation
Remediation Suggestions
- Add a dependency file containing an explicitly reviewed version, such as
requirements.txt. - Generate and enforce cryptographic hashes for all resolved packages, for example:
bash python -m pip install --require-hashes -r requirements.txt - Use a lock file generated by a dependency-management tool so transitive dependencies are also reproducible.
- Instruct users to create an isolated virtual environment:
bash python3 -m venv .venv . .venv/bin/activate python -m pip install --require-hashes -r requirements.txt - Remove the recommendation to use
--break-system-packages. - Periodically review and update the pinned dependency after vulnerability and compatibility testing.
- Add a dependency file containing an explicitly reviewed version, such as
