T08 · Insecure Dependencies
Warning
- Location
- README.md:40
- Finding
- Unpinned Third-Party Dependencies Allow Supply-Chain Version Drift<![CDATA[ ## Vulnerability Details **File Location**: `README.md:40-47` **Vulnerability Type**: Unpinned executable dependencies **Risk Level**: Medium ### Vulnerable Code ```bash pip install --upgrade pip # 3) engine + English G2P frontend pip install mlx-audio # pulls in the MLX Kokoro pipeline pip install "misaki[en]" # English grapheme-to-phoneme frontend # 4) ffmpeg (Homebrew) brew install ffmpeg ``` ### Technical Analysis The documented installation procedure installs the latest available versions of `pip`, `mlx-audio`, `misaki`, their transitive dependencies, and FFmpeg. The commands do not enforce the versions listed as tested elsewhere in the README, use a dependency lock file, or verify package hashes. Python packages may execute code during installation and are subsequently imported and invoked by `scripts/narrate.py`. Consequently, the effective executable dependency set can change after this project has been reviewed. A compromised upstream release, dependency-confusion event, malicious transitive dependency, or incompatible future release could therefore introduce code that was not included in the audited repository. This finding does not establish that any currently named dependency is malicious. The risk arises from executing versions selected dynamically at installation time without integrity verification. ### Attack Path 1. An attacker compromises an upstream package, one of its transitive dependencies, or the package-distribution account used to publish a new release. 2. The attacker publishes a malicious version under a dependency name used by the documented commands. 3. A user follows the installation instructions after that release becomes the default version. 4. `pip` downloads and installs the attacker-controlled package because no exact version or hash is required. 5. Malicious code executes during installation or when `narrate.py` imports and invokes the affected package. ### Impact Assessment Malicious dep ...[truncated 505 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin every direct Python dependency to an exact reviewed version, matching the confirmed-good versions documented by the project. 2. Generate and commit a lock file that captures all transitive dependencies. 3. Use hash-verified installation, such as a requirements file generated with hashes and installed using: ```bash python -m pip install --require-hashes -r requirements.txt ``` 4. Avoid an unconstrained `pip install --upgrade pip` in the reproducible setup path. Pin the installer version or document it separately as an optional maintenance action. 5. Record the expected FFmpeg version and provide a mechanism to verify the installed binary and package source. 6. Use only trusted package indexes and explicitly document the expected index configuration. 7. Add automated dependency auditing and controlled update procedures so version changes receive review before being incorporated into installation instructions. ]]>
