T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:11
- Finding
- Unpinned OpenAI Whisper Dependency Creates Supply-Chain Risk<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:11-16`; also documented in `README.md:49-57` **Vulnerability Type**: Unpinned third-party package installation **Risk Level**: Medium ### Vulnerable Code From `SKILL.md:11-16`: ```yaml requires: bins: [whisper] install: - id: whisper kind: pip package: openai-whisper bins: [whisper] label: Install OpenAI Whisper (pip) ``` The equivalent manual installation instruction in `README.md:49-57` is: ```bash clawhub install expression-coach ``` ```bash pip install openai-whisper ``` ### Technical Analysis The Skill installs `openai-whisper` without a fixed version, package hash, or reviewed dependency lock file. Consequently, the code installed for the same Skill version can change over time. Python package installation can execute package build logic and installs transitive dependencies. A compromised future release, compromised transitive dependency, or unsafe package-index configuration could therefore introduce arbitrary code during installation or subsequent Whisper execution. The package name appears to refer to the legitimate OpenAI Whisper distribution, and the audit found no evidence of intentional dependency confusion or typosquatting. The issue is the absence of reproducible dependency controls rather than evidence that the current package is malicious. ### Attack Path 1. An attacker compromises the package, one of its transitive dependencies, or the package-index resolution path. 2. A user installs the Skill or follows the documented `pip install openai-whisper` command. 3. Pip resolves the mutable latest release instead of a previously reviewed version. 4. Malicious build or runtime code executes under the account performing the installation. 5. The malicious dependency gains access to data and resources available to that account. ### Impact Assessment Successful exploitation could permit arbitrary code execution with the privileges of the account running pip o ...[truncated 429 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin `openai-whisper` to a reviewed exact version rather than resolving the latest release. 2. Pin all transitive dependencies through a lock file or constraints file. 3. Require package hashes, such as through `pip install --require-hashes`, where supported by the Skill installation mechanism. 4. Document the approved package index and prevent fallback to untrusted indexes. 5. Install the dependency in an isolated virtual environment or container using an unprivileged account. 6. Add a dependency-update process that reviews release changes and regenerates verified hashes before changing versions. 7. Keep the Skill metadata and README installation instructions consistent with the pinned version. ]]>
