T08 · Insecure Dependencies
- Location
models/vits-piper-zh_CN-huayan-medium/vits-piper.sh:17- Finding
Unverified Third-Party Packages and Remotely Hosted Assets
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill claims to be local Chinese voice playback, but the package contains under-disclosed setup scripts that install packages and download remote model assets.
Review this before installing. Only use it if you are comfortable with a skill that may require manual repair and whose bundled setup script can install Python packages and download model assets from external services without verification. Prefer a version that includes the advertised playback script, pins dependencies, verifies downloaded files, and limits downloads to the declared zh_CN-huayan-medium model.
models/vits-piper-zh_CN-huayan-medium/vits-piper.sh:17Unverified Third-Party Packages and Remotely Hosted Assets
The skill is presented as local playback, but the reported behavior includes downloading arbitrary models from remote sources, installing dependencies at runtime, and supporting unrelated voices/languages based on environment variables. That is a significant trust-boundary violation: network retrieval and runtime package installation can introduce supply-chain risk and enable execution paths far beyond what a local offline TTS skill implies.
The skill is presented as local playback, but the reported behavior includes downloading arbitrary models from remote sources, installing dependencies at runtime, and supporting unrelated voices/languages based on environment variables. That is a significant trust-boundary violation: network retrieval and runtime package installation can introduce supply-chain risk and enable execution paths far beyond what a local offline TTS skill implies.
The skill advertises executable behavior but does not declare any tool scope or permissions, despite requiring shell, environment, and file access capabilities. This creates an authorization and transparency gap: a caller cannot reliably understand or constrain what the skill may do, which increases the chance of unintended command execution or file operations.
The manifest description and heading describe the skill as specifically providing Chinese TTS playback and a Chinese voice style, with no indication that users can choose another language or that this locale restriction is optional. Under the policy rule, fixed language behavior without user opt-in can be a natural-language locale policy violation.
The manifest describes a local Chinese TTS playback skill with Piper/System.Speech fallback for reading replies aloud, but this file does not perform playback or fallback at all. Instead, it edits ONNX model metadata, reads a model config JSON, and generates a tokens.txt file, which are model packaging/preparation tasks rather than runtime speech output behavior.
Although the skill is presented as a huayan-specific local TTS capability, the script is a generic downloader driven by environment variables that can fetch arbitrary language/voice combinations. That broader-than-advertised behavior increases attack surface, weakens auditability, and makes it easier to repurpose the skill for unintended remote asset retrieval.
The script contradicts the skill's 'local playback' description by performing runtime package installation and multiple external downloads from PyPI, Hugging Face, and GitHub. This expands the trust boundary to remote infrastructure and enables supply-chain compromise, unexpected code execution during install, or environment modification on the user's machine.
Running 'pip install iso639-lang' at execution time introduces arbitrary third-party code into the environment for a task that should be local playback. Package installation can trigger installer code and dependency resolution from remote sources, creating unnecessary supply-chain and system integrity risk.
The script modifies the host environment by installing packages, downloading files, extracting archives, and deleting files with no user-facing warning or confirmation. For a TTS skill, those side effects are disproportionate and reduce user ability to make an informed trust decision before the system is changed.
The script downloads model files and an archive from external services at runtime, then extracts and uses them without integrity verification. In a skill marketed as local-only playback, this is especially dangerous because users may not expect network access or remote content execution paths, and a compromised upstream or MITM-adjacent scenario could deliver malicious assets or poisoned dependencies.
For a skill whose stated purpose is local TTS playback, mutating ONNX files in place and generating tokens.txt are not obvious runtime requirements of reading replies aloud. These are build-time or maintenance capabilities that expand beyond the user-facing playback function described in the manifest.
This manifest-style JSON specifies a fixed language and region of zh_CN/China in natural-language metadata, with no indication that users can choose another locale or opt in to the restriction. The policy asks to flag language or locale constraints unless they are clearly documented and justified as region-specific, which is not evident in this file alone.