T08 · Insecure Dependencies
- Location
SKILL.md:23- Finding
Unpinned Python Dependencies Installed from Mutable Package Indexes
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:23-25,SKILL.md:350, andREADME.md:63-68
Vulnerability Type: Supply-chain exposure through unpinned dependencies and optional third-party package indexes
Risk Level: MediumVulnerable Code
SKILL.md:23-25:bash - **whisper**: `pip install faster-whisper`(推荐,速度快 4 倍)或 `pip install openai-whisper` - **中国用户**加速安装:`pip install faster-whisper -i https://pypi.tuna.tsinghua.edu.cn/simple`SKILL.md:350:bash pip install faster-whisper -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cnREADME.md:63-68:bash pip install faster-whisper # 推荐,速度快 4 倍bash pip install faster-whisper -i https://pypi.tuna.tsinghua.edu.cn/simpleTechnical Analysis
The installation instructions do not pin reviewed versions of
faster-whisper,openai-whisper, or their transitive dependencies. Each installation can therefore retrieve a different dependency set as upstream packages change.The Skill also recommends an optional third-party package index. Although the specified mirror uses HTTPS, package integrity is not independently verified through hashes or a lockfile. The
--trusted-hostrecommendation further weakens pip's normal transport validation policy for that host and is unnecessary when correctly configured HTTPS is available.Python packages can execute code during installation through build backends and can execute additional code when imported. Consequently, compromise of an upstream release, transitive dependency, package index, or mirror could introduce code that was not present during the Skill audit.
Attack Path
- An attacker compromises a dependency release, transitive package, publisher account, package index, or recommended mirror.
- The attacker publishes or serves a malicious package version under a dependency name expected by the installation.
- A user fo ...[truncated 967 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin reviewed direct dependency versions, for example:
text faster-whisper==<reviewed-version> - Generate a lockfile that also fixes transitive dependency versions.
- Require hashes using a hash-locked requirements file and install with:
bash python3 -m pip install --require-hashes -r requirements.txt - Prefer the official Python package index unless an organization-controlled, synchronized mirror is required.
- Remove
--trusted-host; retain normal TLS certificate and hostname validation. - Document the expected package publisher, package digest, and review/update process.
- Install dependencies inside a dedicated virtual environment under a non-privileged account.
- Test dependency updates separately before changing pinned versions.
- Pin reviewed direct dependency versions, for example:
