T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:24
- Finding
- Unpinned Third-Party Dependency Installation<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 24-28; duplicated in `README.md`, lines 5-10 **Vulnerability Type**: T08: Insecure Dependencies **Risk Level**: Medium ### Vulnerable Code ```bash ## 安装依赖 ```bash pip install edge-tts sudo apt-get install ffmpeg ``` ``` The equivalent installation command in `README.md` is: ```bash pip install edge-tts sudo apt-get install ffmpeg ``` ### Technical Analysis The documented installation process retrieves the latest available `edge-tts` release without a version constraint, lock file, or integrity hash. Consequently, the code installed by users can change after the Skill has been reviewed. This creates supply-chain exposure because a compromised upstream release, compromised package-publishing account, or malicious future release would be installed automatically. The package is subsequently imported and executed by `scripts/voice_sender.py`, so malicious package-level or import-time code would run without requiring another vulnerability in this project. The package name itself matches the expected dependency; no evidence of typosquatting, dependency confusion, or a currently malicious package was identified. The risk arises from the unpinned and unverifiable installation process. ### Attack Path 1. An attacker compromises the upstream package distribution account or causes a malicious release to be published under the expected package name. 2. A user follows the documented `pip install edge-tts` command. 3. Package installation selects the attacker-controlled latest release because no reviewed version is pinned. 4. The malicious package can execute during installation or when `voice_sender.py` imports `edge_tts`. 5. The payload obtains the permissions of the user or service account running the installation or Skill. ### Impact Assessment Successful exploitation could execute arbitrary code with the privileges of the Python installation process or the account running the Skill. This ...[truncated 280 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin `edge-tts` to an explicitly reviewed version, for example through a version-controlled `requirements.txt`. 2. Generate and verify cryptographic hashes using a hash-locked dependency workflow, such as: ```bash pip install --require-hashes -r requirements.txt ``` 3. Use a lock-file generator such as `pip-tools`, Poetry, or an equivalent reproducible dependency-management system. 4. Review transitive dependencies and refresh pins through a controlled update process. 5. Install dependencies inside a dedicated virtual environment under an unprivileged account. 6. Document a tested FFmpeg version or supported version range and use trusted operating-system repositories. ]]>
