T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:17
- Finding
- Unpinned Third-Party Package Installation## Vulnerability Details **File Location**: `SKILL.md`, lines 17-22 **Vulnerability Type**: Unpinned dependency version and missing integrity verification **Risk Level**: Medium ### Vulnerable Code ```yaml "install": [ { "id": "pip", "kind": "pip", "package": "edge-tts", "label": "Install edge-tts (pip)", }, ], ``` ### Technical Analysis The installation metadata requests the `edge-tts` package without specifying an exact reviewed version or an expected cryptographic hash. Consequently, every new installation may resolve to a different package release. The effective dependency code can change after this Skill has been reviewed. This creates a supply-chain risk: compromise of the package publisher, distribution account, package repository, or a future upstream release could cause malicious code to be installed. The configuration provides no lock file, hash verification, or other mechanism that would detect such a change before installation. The issue does not demonstrate that the current `edge-tts` package is malicious. It means that the Skill does not constrain or verify the package artifact that it instructs the environment to install. ### Attack Path 1. An attacker compromises the upstream package, its publisher account, or the package distribution channel. 2. The attacker publishes a malicious release under the expected `edge-tts` package name. 3. A user or automated Skill installer processes this metadata and resolves the unpinned package to the malicious release. 4. The malicious package is installed with the permissions of the account performing installation. 5. Attacker-controlled code may execute through package installation behavior or later when `dictation.py` invokes the installed `edge-tts` executable. ### Impact Assessment Successful exploitation could execute attacker-controlled code with the privileges of the installing or runtime user. Depending on ...[truncated 403 chars]
- Remediation
- ## Remediation Suggestions 1. Pin `edge-tts` to an exact version that has been reviewed, for example by using an exact-version requirement rather than an unconstrained package name. 2. Record and verify cryptographic hashes for the package and all transitive dependencies. Use a hash-locked requirements file and install with pip's `--require-hashes` option where supported. 3. Generate dependency locks in a controlled build process and commit the lock data with the Skill. 4. Retrieve packages only from an explicitly configured trusted repository or an internally controlled package mirror. 5. Run dependency installation and audio generation as a non-privileged user in an isolated environment. 6. Periodically review and update the pinned version after checking release provenance, dependency changes, and known vulnerabilities.
