T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:23
- Finding
- Unpinned Third-Party TTS Dependency Creates Supply-Chain Risk<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:23-28` **Vulnerability Type**: Unpinned third-party dependency **Risk Level**: Medium ### Vulnerable Code ```markdown ## Prerequisites ```bash npm install node-edge-tts ``` ``` ### Technical Analysis The documented installation command retrieves the latest version of `node-edge-tts` rather than a specific, reviewed version. The project contains no package manifest, lockfile, integrity hash, or other mechanism that ensures users install a known dependency artifact. An npm installation can also execute package lifecycle scripts. Consequently, the effective code installed and potentially executed by users may change after this Skill has been reviewed. This creates exposure to package-account compromise, malicious future releases, registry compromise, or unexpected upstream changes. The audit did not find evidence that `node-edge-tts` is currently malicious. The vulnerability is the absence of dependency pinning and integrity controls. ### Attack Path 1. An attacker compromises the upstream package, its maintainer account, or its distribution process and publishes a malicious release. 2. A user follows the Skill's documented `npm install node-edge-tts` command. 3. npm resolves the unpinned dependency to the malicious or compromised release. 4. Malicious code may run through an npm lifecycle script during installation or when `gen_voice.js` imports and invokes the package. 5. The code executes with the permissions of the user or Agent running npm or the Skill. ### Impact Assessment Successful exploitation could permit arbitrary code execution under the installing or invoking user's account. Depending on that account's privileges, the attacker could access local files, environment variables, Agent-accessible credentials, and network resources, or modify other writable project files. The scope is limited by the operating-system permissions and sandbox restrictions applied to npm and Node.js. ...[truncated 75 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Add a `package.json` that pins `node-edge-tts` to an exact, reviewed version rather than using a floating version range. 2. Commit a generated lockfile containing dependency versions and registry integrity hashes. 3. Replace the documented installation command with `npm ci` so installation follows the lockfile exactly. 4. Review the dependency's source, transitive dependencies, maintainers, and lifecycle scripts before approving upgrades. 5. Use automated dependency scanning and update only through reviewed changes. 6. Where compatible with the package, install dependencies with lifecycle scripts disabled, such as `npm ci --ignore-scripts`. 7. Run installation and TTS generation in a sandbox with minimal filesystem, credential, and network access. ]]>
