T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:13
- Finding
- Unpinned Package and Runtime Model Dependencies<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:13-20`; additional runtime reference at `scripts/run_pipeline.sh:115-128` **Vulnerability Type**: Unpinned third-party package and model dependencies **Risk Level**: Medium ### Vulnerable Code ```yaml { "id": "mlx-whisper", "kind": "pip", "package": "mlx-whisper", "bins": ["mlx_whisper"], "label": "Install mlx-whisper (pip)", }, ``` The pipeline also loads a model using a mutable repository identifier: ```bash mlx_whisper "$AUDIO_FILE" \ -f vtt \ -o "$OUT_DIR" \ --model mlx-community/whisper-large-v3-turbo \ --condition-on-previous-text False \ --word-timestamps True \ $LANG_FLAG \ 2>&1 || { echo "[warn] Retrying without extra flags..." >&2 mlx_whisper "$AUDIO_FILE" \ -f vtt \ -o "$OUT_DIR" \ --model mlx-community/whisper-large-v3-turbo \ $LANG_FLAG } ``` Related installation instructions also use an unpinned dependency: ```bash pip install mlx-whisper ``` ### Technical Analysis The Skill installs `mlx-whisper` without pinning an audited version or verifying package hashes. Consequently, the actual package installed depends on the current state of the configured Python package index at installation time. The transcription model is also selected through the mutable repository identifier `mlx-community/whisper-large-v3-turbo`, without an immutable revision or integrity digest. Changes to the upstream package or model repository can therefore alter the code or model artifacts used after this Skill has been reviewed. This creates a supply-chain risk. If an upstream release, maintainer account, package index, or model repository is compromised, users following the documented workflow may retrieve a malicious or unexpectedly changed component. ### Attack Path 1. An attacker compromises the upstream Python package, its publisher account, the package distribution channel, or the referenced model repository. 2. The attacker publishes a mal ...[truncated 1047 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin `mlx-whisper` to a specifically audited version rather than installing the latest available release. 2. Maintain dependencies in a lock file or constraints file with cryptographic hashes, and install them using hash verification such as `pip install --require-hashes`. 3. Pin the Hugging Face model to an immutable commit revision or verified artifact digest instead of relying only on a mutable repository name. 4. Document the approved package index and model registry, and reject unexpected mirrors or alternate sources. 5. Perform dependency vulnerability and provenance checks as part of release review. 6. Re-test the pipeline before intentionally updating either the package version or model revision. ]]>
