T08 · Insecure Dependencies
- Location
scripts/install_deps.py:91- Finding
Unpinned Third-Party Dependencies Are Installed and Executed
- Content
View full analysis
Vulnerability Details
File Location:
scripts/install_deps.py:91-123; related installation instructions appear inSKILL.md:55-59, 109, 121, 264-265andscripts/transcribe.py:517-520
Vulnerability Type: Unpinned dependency installation and software supply-chain exposure
Risk Level: MediumVulnerable Code
python def install_yt_dlp(): """Install yt-dlp via pip.""" try: import yt_dlp print('[OK] yt-dlp already installed') return True except ImportError: pass print('[INSTALL] yt-dlp...') return run([sys.executable, '-m', 'pip', 'install', 'yt-dlp', '--user'], check=False) def install_whisper(mode='openai'): """Install speech-to-text engine (openai-whisper or faster-whisper).""" if mode == 'faster': try: import faster_whisper print('[OK] faster-whisper already installed') return True except ImportError: pass print('[INSTALL] faster-whisper...') return run([sys.executable, '-m', 'pip', 'install', 'faster-whisper', '--user'], check=False) else: try: import whisper print('[OK] openai-whisper already installed') return True except ImportError: pass print('[INSTALL] openai-whisper...') return run([sys.executable, '-m', 'pip', 'install', 'openai-whisper', '--user'], check=False)The documentation also directs users to install other unpinned packages:
markdown python scripts/install_deps.py pip install funasr modelscope pip install pywhispercppTechnical Analysis
The dependency installer invokes pip using package names without reviewed version constraints, a lock file, or cryptographic hashes. Pip therefore resolves whichever compatible releases and transitive dependencies are available from the configured package ind ...[truncated 2285 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin every direct dependency to a reviewed version rather than installing unconstrained package names.
- Generate a lock file that includes all transitive dependencies for each supported platform and Python version.
- Record cryptographic hashes for approved distributions and install with
pip --require-hashes. - Use an explicit trusted package index and disable unintended fallback indexes where feasible.
- Separate optional ASR backends into individually reviewed dependency groups so users install only the backend they need.
- Prefer prebuilt, verified wheels and prevent unreviewed source builds in production installation workflows.
- Add automated dependency scanning and update review procedures before changing locked versions.
- Update
SKILL.mdandscripts/transcribe.pyso every installation example references the same locked requirements rather than direct unpinnedpip installcommands. - Keep dependency installation separate from normal Skill execution and clearly require user confirmation before installing or updating software.
- Document model artifact sources and, where supported, verify downloaded model files against published checksums or signed manifests.
