other
Warning
- Location
- scripts/tts.py:27
- Finding
- Undisclosed Transmission of User Text to an External TTS Service## Vulnerability Details **File Location**: `scripts/tts.py`, lines 27-32 **Vulnerability Type**: Undisclosed third-party data transmission **Risk Level**: Medium ### Vulnerable Code ```python def tts_gtts(text, output, lang='en'): """Use gTTS for TTS.""" try: from gtts import gTTS tts = gTTS(text, lang=lang) tts.save(output) ``` ### Technical Analysis The supplied text is passed to the `gTTS` library for network-backed speech synthesis. This causes user-controlled content to be transmitted to an external Google TTS service. The skill documentation describes text-to-speech conversion but does not disclose that submitted text leaves the local environment. This is particularly relevant because text submitted for narration may include confidential documents, personal information, internal business data, or other sensitive content. No consent, sensitivity warning, offline mode, or content filtering control is implemented. ### Attack Path 1. A user invokes the skill with text containing confidential or personal information. 2. `main()` passes the supplied text to `tts_gtts()`. 3. `gTTS(text, lang=lang)` prepares the content for remote synthesis. 4. `tts.save(output)` contacts the external service and sends the text as part of the synthesis request. 5. The external service may process, log, or retain the submitted content according to policies outside the user's local security boundary. ### Impact Assessment The issue does not grant local operating-system privileges or direct code execution. Its impact is loss of confidentiality for all text submitted to the skill. Exposure is limited to the supplied text and associated request metadata, but may include highly sensitive information depending on how the skill is used.
- Remediation
- ## Remediation Suggestions - Clearly disclose in `SKILL.md` that the default backend sends supplied text to an external service. - Require explicit user consent before transmitting content. - Warn users not to submit secrets, credentials, regulated data, or confidential documents. - Provide an explicitly selected offline TTS backend for sensitive workloads. - Add a configuration option that disables all network-backed synthesis. - Document the external provider's applicable privacy, retention, and data-processing policies. - Consider implementing sensitivity checks or confirmation prompts before external transmission.
