T08 · Insecure Dependencies
- Location
setup.sh:11- Finding
Unpinned Third-Party Package Installation
- Content
View full analysis
Vulnerability Details
File Location:
setup.sh:11-15
Vulnerability Type: Supply-chain risk caused by an unpinned dependency
Risk Level: MediumVulnerable Code
bash if command -v pip3 &>/dev/null; then pip3 install --quiet edge-tts elif command -v pip &>/dev/null; then pip install --quiet edge-ttsTechnical Analysis
The setup script installs
edge-ttswithout specifying an audited version, verifying package hashes, using a lockfile, or enforcing an isolated Python environment. Consequently, each installation resolves the package and its transitive dependencies according to the mutable state of the configured Python package index.This creates a supply-chain exposure: a compromised package release, compromised transitive dependency, or unanticipated upstream change could introduce arbitrary installation-time or runtime code. The installation also targets the active Python environment, which may alter shared dependencies and affect applications outside this skill.
The audit did not find evidence that the project intentionally retrieves a known malicious package. Exploitation depends on compromise or unsafe configuration of the package supply chain.
Attack Path
- An attacker compromises an upstream
edge-ttsrelease, one of its transitive dependencies, or a package index trusted by the host. - A user or agent executes
bash setup.sh. - The unversioned
pip install edge-ttscommand resolves the attacker-controlled or compromised release. - Pip downloads and installs the package without integrity verification against project-maintained hashes.
- Malicious installation hooks or subsequently imported package code execute with the privileges of the account running the installer.
- If installation is performed by a privileged account, the malicious code may modify system-wide Python files or access other resources available to that account.
Impact Assessme
...[truncated 512 chars]
- An attacker compromises an upstream
- Remediation
View remediation
Remediation Suggestions
- Pin
edge-ttsand every transitive dependency to explicitly reviewed versions in a locked requirements file. - Record cryptographic hashes for all distributions and install with
pip install --require-hashes -r requirements.txt. - Install dependencies in a dedicated virtual environment rather than the active or system-wide Python environment.
- Configure pip to use an approved package index over TLS and disable unintended fallback indexes.
- Run installation as a non-root account with the minimum required filesystem and network privileges.
- Add automated dependency vulnerability scanning and a controlled process for reviewing and updating pinned versions.
- Consider building and distributing dependencies from an internally verified artifact repository to reduce exposure to mutable upstream releases.
- Pin
