T08 · Insecure Dependencies
- Location
SKILL.md:37- Finding
Unpinned Third-Party Dependency Creates a Supply-Chain Risk
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 37-41
Vulnerability Type: Unpinned runtime dependency
Risk Level: MediumVulnerable Code:
bash pip install edge-ttsTechnical Analysis
The installation instructions retrieve the latest available version of
edge-ttswithout a version constraint or cryptographic integrity hash. Consequently, the code installed and executed by users can change after this Skill has been reviewed.This does not demonstrate that the current
edge-ttspackage is malicious. However, it creates a supply-chain exposure: compromise of the package publisher account, package repository, distribution artifact, or a future upstream release could introduce unreviewed executable code. Package installation and subsequent import occur with the privileges of the user running the Skill.Attack Path
- An attacker compromises the upstream package, its publisher account, or its distribution channel.
- The attacker publishes a malicious or compromised release under the expected package name.
- A user follows the documented
pip install edge-ttsinstruction without a version or hash constraint. pipdownloads and installs the attacker-controlled release.- Malicious package behavior executes during installation or when
edge_ttsis imported and used byscripts/send_voice.py. - The malicious code can access data and resources available to the Skill process.
Impact Assessment
Successful exploitation could execute code with the privileges of the user running the installation or Skill. This could expose text supplied for speech generation, accessible local files, environment data, and credentials readable by that user, including the OpenClaw configuration if accessible. The scope is limited by the privileges and operating-system access controls of the affected user account.
- Remediation
View remediation
Remediation Suggestions
- Pin
edge-ttsto a specifically reviewed version in a committed requirements file. - Record and verify distribution hashes using pip's
--require-hashesoption. - Install packages only from the official, explicitly configured package index.
- Review dependency updates before changing the pinned version.
- Consider using an isolated virtual environment with only the permissions required to generate audio.
- Document a reproducible installation command, for example:
bash python -m pip install --require-hashes -r requirements.txt - Include hashes for every direct and transitive dependency represented in the lock file.
- Pin
