T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:19
- Finding
- Unpinned Third-Party Package Installation and Immediate Execution## Vulnerability Details **File Location**: `SKILL.md`, lines 19–24 **Vulnerability Type**: Unpinned and unverifiable third-party dependency execution **Risk Level**: Medium ### Vulnerable Code ```bash # From PyPI (requires --prerelease=allow due to mlx-audio upstream dep) uvx --prerelease=allow tts-router list # Or install with pip pip install tts-router ``` ### Technical Analysis The documented installation commands resolve `tts-router` and its transitive dependencies from PyPI without specifying an exact version, integrity hash, lockfile, or verified source revision. The `uvx` command does not merely download the package: it immediately runs the resolved `tts-router` executable. The `--prerelease=allow` option also permits prerelease dependency versions, increasing the range of remotely supplied components that may be selected. This repository contains documentation only and does not include the source code of `tts-router` or its dependencies. Consequently, the behavior of the code installed and executed by these instructions cannot be verified from the audited artifact. This creates supply-chain exposure if the package, a transitive dependency, its publisher account, or the package-resolution process is compromised. ### Attack Path 1. An attacker compromises the `tts-router` distribution, a transitive dependency, or an associated package-publishing account. 2. The attacker publishes a malicious version that remains compatible with the unpinned requirement. 3. A user or agent follows the documented `uvx --prerelease=allow tts-router list` instruction. 4. The package manager resolves and downloads the attacker-controlled release. 5. `uvx` immediately executes the downloaded package under the invoking user's account. 6. The malicious code can perform actions available to that account before or instead of displaying the expected model list. The alternative `pip install tts-router` instruction creates the same unpinned dependency risk, although subsequ ...[truncated 806 chars]
- Remediation
- ## Remediation Suggestions 1. Pin `tts-router` to a specific, reviewed version rather than resolving the latest available release: ```bash uvx --from 'tts-router==X.Y.Z' tts-router list ``` or: ```bash pip install 'tts-router==X.Y.Z' ``` 2. Publish cryptographic hashes for the package and all resolved dependencies, and enforce hash verification during installation. 3. Provide a committed lockfile or equivalent reproducible dependency manifest that records exact transitive dependency versions. 4. Avoid `--prerelease=allow` unless a specific reviewed prerelease dependency is unavoidable. Pin that dependency explicitly and document why it is required. 5. Link to the authoritative source repository and a specific reviewed release or commit so users can verify package provenance. 6. Recommend installation and initial execution inside an isolated, least-privileged environment without sensitive credentials or unnecessary filesystem access. 7. Add release-signing or provenance verification instructions where supported by the package distribution workflow.
