T08 · Insecure Dependencies
- Location
SKILL.md:29- Finding
Unverified Model Download from a Mutable Upstream Branch
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 29–33
Vulnerability Type: Insecure third-party model retrieval
Risk Level: Mediummarkdown Download the model to `/usr/share/whisper.cpp-model-large-v3-turbo/`: ```bash wget https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-large-v3-turbo.bin?download=true -O /usr/share/whisper.cpp-model-large-v3-turbo/ggml-large-v3-turbo.bintext ### Technical Analysis The documented setup command downloads a third-party model from the mutable `main` branch and writes it directly to a system-wide model path. It does not pin an immutable release or commit and does not verify a cryptographic digest or signature. HTTPS protects the download in transit, but it does not establish that the retrieved artifact is identical to the artifact reviewed or intended by the Skill author. If the upstream repository, hosting account, or mutable artifact is compromised or replaced, users following the setup instructions could silently install attacker-controlled or otherwise unexpected model data. The command also writes directly to the final destination rather than downloading to a temporary file, validating it, and atomically moving it into place. An interrupted download could therefore leave a truncated or corrupt model at the path later consumed by `whisper-cli`. ### Attack Path 1. An attacker compromises the upstream repository, hosting account, or artifact referenced through the mutable `main` branch. 2. The attacker replaces the model with a maliciously crafted or behaviorally modified artifact. 3. A user follows the documented `wget` command. 4. The unverified bytes are written directly to `/usr/share/whisper.cpp-model-large-v3-turbo/ggml-large-v3-turbo.bin`. 5. The wrapper invokes `whisper-cli`, which loads and parses the substituted artifact. 6. The modified model may manipulate transcription results; if it triggers a vulnerability in the native model p ...[truncated 859 chars]- Remediation
View remediation
Remediation Suggestions
- Reference an immutable release or commit rather than the mutable
mainbranch. - Publish a trusted SHA-256 or stronger digest for the expected model and verify it before installation.
- Prefer a signed release and validate its signature against a documented, trusted public key.
- Download into a securely created temporary file rather than directly overwriting the final model.
- Reject the artifact if its digest, signature, expected size, or format validation fails.
- Move the verified temporary file atomically into the destination and assign restrictive ownership and permissions.
- Document the exact model version and digest so administrators can reproduce and audit the installation.
- Avoid running the downloader or transcription process with greater privileges than necessary.
- Reference an immutable release or commit rather than the mutable
