T08 · Insecure Dependencies
Warning
- Location
- skill-info.json:7
- Finding
- Mutable and Unverified External TTS Dependency## Vulnerability Details **File Location**: `skill-info.json`, lines 7-9 **Vulnerability Type**: Unpinned third-party dependency and unaudited external execution **Risk Level**: Medium ```json "dependencies": { "edge-tts": "latest" } ``` ### Technical Analysis The project declares the `edge-tts` dependency using the mutable `latest` version selector. This prevents the installed component from being tied to the version that existed when the skill was reviewed. A future installation can therefore resolve to different code without any modification to this project. The accompanying skill documentation also instructs the agent to execute `tts-converter.js` from an external skill directory rather than shipping the implementation in the audited package. The metadata names `edge-tts`, while the documentation refers to the `node-edge-tts` npm package, creating additional ambiguity over which component is expected to be installed and trusted. No lockfile, integrity hash, exact version, vendored implementation, or other mechanism is present to verify the identity and contents of the effective dependency. This creates a supply-chain boundary in which unaudited code may be installed or executed. ### Attack Path 1. An attacker compromises the dependency publisher account, upstream package, distribution registry, or externally referenced skill directory. 2. The attacker publishes or substitutes a malicious release that becomes the value resolved by `latest`, or replaces the externally referenced `tts-converter.js`. 3. A user installs or updates the skill's dependencies, receiving the attacker-controlled component. 4. The agent invokes the documented TTS workflow. 5. The malicious dependency or script executes with the permissions of the agent or Node.js process. ### Impact Assessment Successful exploitation could provide arbitrary code execution within the security context of the process running the skill. The resulting access ...[truncated 535 chars]
- Remediation
- ## Remediation Suggestions 1. Replace `latest` with an exact, reviewed dependency version. 2. Clarify whether the required component is the `edge-tts` skill, the `node-edge-tts` npm package, or both, and use consistent identifiers throughout the metadata and documentation. 3. Commit an appropriate lockfile containing integrity hashes and enforce immutable installation in deployment. 4. Retrieve dependencies only from an explicitly trusted registry and verify package provenance or signatures where supported. 5. Include the required conversion script in the reviewed package or separately audit and pin the external skill containing `tts-converter.js`. 6. Validate the expected script path and file digest before execution to prevent local replacement. 7. Run TTS processing with least privilege, restricted filesystem access, minimal environment variables, and outbound network access limited to the required speech service. 8. Establish a controlled dependency-update process that requires security review and testing before changing the pinned version.
