T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:6
- Finding
- Unpinned Third-Party Dependency Installation## Vulnerability Details **File Location**: `SKILL.md:6-10` **Additional Location**: `scripts/transcribe.py:11-16` **Vulnerability Type**: Unpinned dependency and unverified supply-chain artifacts **Risk Level**: Medium ### Vulnerable Code From `SKILL.md`: ```bash ## Requirements ```bash pip install faster-whisper ``` ``` The script repeats this installation instruction: ```python try: from faster_whisper import WhisperModel except ImportError: print("Error: faster-whisper not installed") print("Run: pip install faster-whisper") sys.exit(1) ``` ### Technical Analysis The project directs users to install `faster-whisper` without specifying an audited version, locking transitive dependencies, or verifying package hashes. Consequently, installation resolves whatever package version and dependency graph the configured Python package index provides at that time. Python package installation may execute package build or installation logic. If the package source, a release, a transitive dependency, the configured index, or the dependency-resolution process is compromised, attacker-controlled code could execute during installation or later when `faster_whisper` is imported. In addition, `WhisperModel(MODEL_SIZE, ...)` automatically retrieves model artifacts on first use, as documented by the project. The project does not pin a model revision or document integrity verification. This expands the external supply-chain surface, although the reviewed code contains no evidence that the model retrieval is intentionally malicious. ### Attack Path 1. An attacker compromises a relevant package release, transitive dependency, package repository, or the user's package-index configuration. 2. A user follows the documented `pip install faster-whisper` command. 3. Because no version or hashes are enforced, the resolver downloads the attacker-influenced artifact. 4. Malicious package logic executes ...[truncated 824 chars]
- Remediation
- ## Remediation Suggestions 1. Pin `faster-whisper` to a specifically reviewed version rather than installing the latest available release: ```bash python3 -m pip install faster-whisper==<reviewed-version> ``` 2. Generate and commit a lock file that fixes all transitive dependency versions. 3. Require cryptographic hashes during installation, for example through a hash-locked requirements file and `pip install --require-hashes`. 4. Explicitly use a trusted package index and prevent unintended fallback to untrusted or private indexes. 5. Install dependencies inside an isolated virtual environment under an unprivileged account; do not run `pip` as `root`. 6. Pin trusted model identifiers and revisions where supported, and verify downloaded model artifacts using vendor-provided checksums or signatures. 7. Add automated dependency vulnerability and provenance scanning to the release process. 8. Update both `SKILL.md` and the error message in `scripts/transcribe.py` so users receive the same hardened installation command.
