T08 · Insecure Dependencies
- Location
requirements.txt:2- Finding
Unpinned Third-Party Dependencies Installed Without Integrity Verification
- Content
View full analysis
Vulnerability Details
File Location:
requirements.txt:2, with unsafe installation behavior insetup.sh:119-128andsetup.sh:136-164
Vulnerability Type: T08: Insecure Dependencies
Risk Level: MediumComplete vulnerable code snippets:
text # requirements.txt:2 faster-whisper>=1.0.0bash # setup.sh:119-128 echo "Installing faster-whisper..." if command -v uv &> /dev/null; then uv pip install --python "$VENV_DIR/bin/python" -r "$SCRIPT_DIR/requirements.txt" else "$VENV_DIR/bin/pip" install --upgrade pip "$VENV_DIR/bin/pip" install -r "$SCRIPT_DIR/requirements.txt" fibash # setup.sh:136-164 if command -v uv &> /dev/null; then uv pip install --python "$VENV_DIR/bin/python" torch --index-url https://download.pytorch.org/whl/cu121 else "$VENV_DIR/bin/pip" install torch --index-url https://download.pytorch.org/whl/cu121 fi echo "✓ PyTorch with CUDA installed" elif [ "$OS_TYPE" = "macos" ]; then echo "" echo "🍎 Installing PyTorch for macOS..." if command -v uv &> /dev/null; then uv pip install --python "$VENV_DIR/bin/python" torch else "$VENV_DIR/bin/pip" install torch fiTechnical Analysis
The
faster-whisperdependency uses an open-ended lower-bound constraint, allowing the package resolver to install any current or future version at or above1.0.0. PyTorch is installed without any version constraint. Neither installation path uses a hash-locked requirements file or another mechanism that authenticates the exact expected artifacts and transitive dependency graph.As a result, the effective code installed by
setup.shcan change over time without any corresponding change to the reviewed Skill package. A compromised upstream release, compromised distribution account, malicious transitive dependency, or unexpected future package version could introduce arbit ...[truncated 1822 chars]- Remediation
View remediation
Remediation Suggestions
- Pin every direct dependency to an exact reviewed version, including
faster-whisperand each platform-specific PyTorch build. - Generate separate lockfiles where necessary for supported operating systems, architectures, Python versions, and CUDA variants.
- Include cryptographic hashes for all resolved artifacts and enforce hash verification during installation, such as with
pip install --require-hashes. - Lock and review transitive dependencies rather than constraining only direct packages.
- Avoid upgrading
pipto an unspecified latest version during routine setup. Pin the installer tooling or provision a reviewed version separately. - Use only explicitly approved package indexes and retain HTTPS certificate validation. Keep PyPI and the PyTorch index configuration isolated so dependency resolution cannot unexpectedly cross sources.
- Regenerate dependency locks through a controlled update process that includes vulnerability scanning, provenance review, compatibility testing, and human approval.
- Prefer verified binary wheels where available and reject unexpected source builds to reduce exposure to build-time code execution.
- Pin every direct dependency to an exact reviewed version, including
