other
- Location
scripts/tts.py:27- Finding
Undisclosed Transmission of User Text to an External TTS Service
- Content
View full analysis
Vulnerability Details
File Location:
scripts/tts.py, lines 27-32
Vulnerability Type: Undisclosed third-party data transmission
Risk Level: MediumVulnerable 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
gTTSlibrary 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
- A user invokes the skill with text containing confidential or personal information.
main()passes the supplied text totts_gtts().gTTS(text, lang=lang)prepares the content for remote synthesis.tts.save(output)contacts the external service and sends the text as part of the synthesis request.- 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
View remediation
Remediation Suggestions
- Clearly disclose in
SKILL.mdthat 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.
- Clearly disclose in
