T08 · Insecure Dependencies
- Location
SKILL.md:287- Finding
Mutable and Unverified Third-Party Dependency Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:287-291
Additional Location:README.md:7-11
Vulnerability Type: Unpinned third-party dependency installation
Risk Level: MediumVulnerable Code
SKILL.md:287-291:bash pip install websocket-client>=1.6.0README.md:7-11:bash pip install websocket-clientTechnical Analysis
The installation instructions retrieve
websocket-clientfrom the active Python package index without requiring an exact audited version or validating an integrity hash. The version constraint inSKILL.mdaccepts every release at or above version 1.6.0, while the instruction inREADME.mdimplicitly selects the latest available release.Consequently, the code installed and imported by the Skill can change after the Skill itself has been audited. Python packages may execute code during installation and whenever imported. This creates a supply-chain trust boundary that is not protected by a lock file, cryptographic hashes, or a documented trusted package source.
The dependency name appears to refer to a legitimate package, and the reviewed project does not itself contain evidence that the current package is malicious. The risk arises from mutable, unverified future package contents or a compromised package index.
Attack Path
- An attacker compromises a permitted package repository, publisher account, package release, or the package-index configuration used by the Agent environment.
- The attacker publishes or serves a malicious version satisfying
websocket-client>=1.6.0, or causes the unconstrained installation command to resolve to malicious content. - A user or Agent follows the documented
pip installcommand. - Attacker-controlled package code executes during installation or when
scripts/xfei_hyper_tts.pyimportswebsocket. - The malicious dependency operates with the privileges of the user running pip or the TTS scr ...[truncated 922 chars]
- Remediation
View remediation
Remediation Suggestions
-
Pin the dependency to a specific audited version rather than using a lower-bound or unconstrained requirement:
text websocket-client==<audited-version> -
Generate and commit a dependency lock file containing cryptographic hashes. Install it with hash verification enabled:
bash python3 -m pip install --require-hashes -r requirements.txt -
Ensure every package and transitive dependency in the requirements file has an approved SHA-256 hash.
-
Configure pip to use a trusted, controlled package index or internal artifact repository rather than relying on arbitrary environment-specific index configuration.
-
Install dependencies in an isolated virtual environment or container under a non-privileged account.
-
Regularly scan the locked dependency version for known vulnerabilities and update it through a reviewed dependency-upgrade process.
-
Make
README.mdandSKILL.mduse the same reproducible installation procedure so users are not directed to bypass version and integrity controls.
-
