T09 · Insecure Skill Coding Practices
- Location
src/chichi_speech/server.py:49- Finding
Unauthenticated Resource-Intensive Synthesis Endpoint Exposed on All Interfaces
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is a real voice-cloning speech server, but it needs review because it exposes an unauthenticated, resource-heavy API by default and lacks safeguards around voice samples.
Install only in a controlled environment. Bind the server to 127.0.0.1 unless you intentionally expose it, place authentication or a trusted reverse proxy in front of it, add rate limits and input limits, and use only voice reference audio you are authorized to clone. Pin and review dependencies before production use.
src/chichi_speech/server.py:49Unauthenticated Resource-Intensive Synthesis Endpoint Exposed on All Interfaces
src/chichi_speech/server.py:77Internal Exception Details Disclosed to Unauthenticated Clients
pyproject.toml:6Unpinned Third-Party Dependencies Create Supply-Chain and Build Reproducibility Risk
The documented behavior does not align with the declared purpose: the file claims a RESTful Qwen3 voice-cloning service with prompt reuse, but the evidence in the skill description does not substantiate those security-relevant claims. Behavior mismatches are dangerous because reviewers and users may trust capabilities, dependencies, and data flows that are inaccurate, masking hidden functionality or unsafe assumptions.
Package name closely resembles a popular package, suggesting possible typosquatting. Attackers publish malicious packages with similar names to trick developers into installing them.
The skill documents network access and likely environment-dependent execution but does not declare any tool scope or permissions. This weakens sandboxing and review because consumers cannot easily understand or restrict what capabilities the skill expects, increasing the chance of unintended data access or network use.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Check the health/docs:
curl http://localhost:9090/docs
The skill explicitly supports user-provided reference audio for voice cloning without any consent, privacy, or anti-impersonation safeguards. In this context, that materially increases the risk of unauthorized cloning, misuse of biometric voice data, and privacy violations, especially because the feature is central to the service rather than incidental.
The CLI sets the default --language value to Chinese, which means the skill will use a specific language unless the user explicitly overrides it. This is a natural-language policy concern because it imposes a locale/language choice by default rather than offering a neutral default or requiring user selection.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
print(f"Sending request to {endpoint}...")
try:
response = requests.post(endpoint, json=payload, stream=True)
response.raise_for_status()
with open(args.output, "wb") as f:
The request model hardcodes language: str = "Chinese", which forces a specific language/locale behavior whenever the caller does not explicitly override it. Under the policy, locale constraints should be user-chosen or clearly justified, and this file provides neither opt-in messaging nor a documented regional requirement.
The example request hard-codes "language": "English", which can be interpreted as a language policy constraint in the skill's natural-language guidance. The file does not state that other languages are supported or that English is only an example, so the documentation may imply an unjustified fixed-language expectation.
Dependency has known vulnerabilities (CVEs). Using packages with unpatched security flaws exposes the environment to known exploits.
Dependency has known vulnerabilities (CVEs). Using packages with unpatched security flaws exposes the environment to known exploits.
Dependency has known vulnerabilities (CVEs). Using packages with unpatched security flaws exposes the environment to known exploits.
Dependency has known vulnerabilities (CVEs). Using packages with unpatched security flaws exposes the environment to known exploits.
Dependency has known vulnerabilities (CVEs). Using packages with unpatched security flaws exposes the environment to known exploits.
Dependency has known vulnerabilities (CVEs). Using packages with unpatched security flaws exposes the environment to known exploits.
Dependency has known vulnerabilities (CVEs). Using packages with unpatched security flaws exposes the environment to known exploits.
The manifest describes a service centered on a specific reused voice prompt to avoid recomputation. However, the CLI allows operators to replace the hardcoded reference audio and text at startup, changing the cloned voice identity rather than strictly reusing one fixed prompt. This broadens behavior beyond the stated fixed-prompt optimization model.
No suspicious patterns detected.