T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:27
- Finding
- Unpinned Third-Party Dependency Installation## Vulnerability Details **File Locations**: `SKILL.md:27`, `README.md:8` **Vulnerability Type**: Supply-chain exposure through unpinned dependencies **Risk Level**: Medium **Vulnerable Code Snippet**: `SKILL.md:27` ```bash pip install edge-tts ``` `README.md:8` ```bash pip install edge-tts ``` ### Technical Analysis The documented installation command installs the latest version of `edge-tts` and its transitive dependencies without a version constraint, lock file, or integrity hash. Consequently, the code installed by users can change after the Skill has been reviewed. Although no evidence establishes that the current package is malicious, this installation method creates supply-chain exposure. A compromised package release, compromised maintainer account, malicious transitive dependency, or unexpected incompatible release could introduce arbitrary code into the Skill's runtime environment. ### Attack Path 1. An attacker compromises the `edge-tts` distribution channel, a maintainer account, or one of its unresolved transitive dependencies. 2. The attacker publishes a malicious version that still satisfies the unrestricted installation command. 3. A user follows the project documentation and executes `pip install edge-tts`. 4. Pip resolves and installs the attacker-controlled release. 5. Malicious package code executes during installation or when `voice_sender.py` imports or invokes the dependency. ### Impact Assessment Successful exploitation could execute arbitrary Python code with the privileges of the user performing installation or running the Skill. This may permit access to user-readable files, OpenClaw configuration, environment variables, messaging credentials, and network resources available to that account. The issue does not independently provide root privileges unless installation or execution is performed with elevated privileges.
- Remediation
- ## Remediation Suggestions 1. Pin `edge-tts` to a specifically reviewed version rather than resolving the latest release. 2. Maintain a lock file containing exact versions of all transitive dependencies. 3. Require package hashes, for example through a hash-locked requirements file and `pip install --require-hashes`. 4. Install packages only from an explicitly configured trusted index. 5. Perform dependency vulnerability and provenance checks before updating the pinned version. 6. Run the Skill in an isolated virtual environment under a non-privileged account. 7. Update both `SKILL.md` and `README.md` so users consistently follow the hardened installation procedure.
