Back to skill

Security audit

Windows TTS Notification

Security checks for vulnerabilities and agentic risk

Overview

The skill does what it says: sends user-provided text to a configured Windows TTS server, with some privacy and local-network setup risks users should understand.

Install only if you control the Windows TTS server and network. Avoid sending private medical, financial, credential, or sensitive household details through TTS, prefer HTTPS or authentication if supported, keep the server off the public Internet, and review any heartbeat or cron reminders before enabling automated broadcasts.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
Findings (2)

T09 · Insecure Skill Coding Practices

Warning
Location
client.ts:87
Finding

Unauthenticated Plaintext Transport for TTS Commands

Content
View full analysis
:5000` endpoint. 2. The plugin sends a remind ...[truncated 1030 chars]
Remediation
View remediation

T08 · Insecure Dependencies

Note
Location
package-lock.json:18
Finding

Build Dependencies Retrieved from a Non-Official Registry Mirror

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (33)

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
90% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · INSTALL.md (reported line 211)May include surrounding context.

clawhub uninstall windows-tts

手动删除

rm -rf /home/cmos/.openclaw/extensions/windows-tts

text

## 更新

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
90% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · INSTALL.md (reported line 211)May include surrounding context.

clawhub uninstall windows-tts

手动删除

rm -rf /home/cmos/.openclaw/extensions/windows-tts

text

## 更新

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The declared purpose describes an end-user messaging and audio output skill involving Azure TTS and Bluetooth speakers. The actual code chunk is only a TypeScript declaration file for configuration typing and validation. Based on the supplied code, the primary described functionality is not represented at all. While config validation could be a supporting implementation detail, this chunk by itself does not evidence any of the advertised capabilities, so the description does not accurately match the observed behavior.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The declared purpose describes a concrete end-user notification/audio broadcasting skill. However, the supplied code chunk is only a type declaration for a validation function in guards.d.ts. This indicates configuration/schema checking behavior, not text-to-speech delivery or Bluetooth broadcasting. Based on the supplied code, the actual behavior is materially different from the description, so this is a mismatch.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The declared description says the skill sends text notifications to Azure TTS for Bluetooth audio broadcast. However, the supplied code does not implement notification delivery, text-to-speech, Azure integration, Bluetooth communication, alarms, or announcements. It is solely a deployment/publishing script for releasing the skill to ClawHub. That is a materially different primary purpose, so this is a clear mismatch.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The documentation describes reminders and notifications but does not clearly warn that reminder text is transmitted over the network to a separate Windows TTS server at a specific LAN address. Users may unknowingly send private family, medical, or scheduling information to another host, increasing privacy risk and the chance of interception or mishandling.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The invocation examples encourage broad natural-language triggering such as asking an agent to 'remind the child to do homework' without defining scope, authorization, or confirmation boundaries. In an agent ecosystem, this can cause unintended TTS broadcasts, prompt-trigger abuse, or misuse by other agents/users who can induce announcements containing sensitive or disruptive content.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
80% confidence
Finding

The example explicitly sends text via HTTP POST to a separate host on the local network, demonstrating external transmission of user-supplied content. Because the transport shown is plain HTTP and the content may include personal reminders, anyone with local network visibility or access to the target service could observe or misuse the transmitted data.

Content

Scanner excerpt · IMPLEMENTATION_SUMMARY.md (reported line 130)May include surrounding context.

bash
# 测试连接
curl -X POST http://192.168.1.60:5000/play_tts \
  -H "Content-Type: application/json" \
  -d '{"text": "测试"}'

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
84% confidence
Finding

The installation and usage instructions are presented entirely in Chinese, which can amount to a language policy issue when the skill documentation forces a specific language without user choice. The file does not indicate that Chinese is optional, nor does it offer an alternative locale version.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The documentation includes a direct token-based login example using clawhub login --token YOUR_API_TOKEN, but it does not warn that passing secrets on the command line can expose them through shell history, terminal logging, or process inspection. In a publishing workflow, this increases the chance that a real registry credential is unintentionally leaked during normal operator use.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
86% confidence
Finding

The publishing summary promotes LAN-wide voice broadcast and family reminder use cases but does not warn that spoken content may be overheard by unintended listeners nearby or on connected speakers. In this skill context, announcements may contain sensitive household information such as medication reminders, schedules, or personal names, so missing privacy guidance increases the risk of accidental disclosure.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

This markdown file is natural-language documentation, and it consistently forces a single language/locale for all instructions and user-facing content. Under the policy, language-specific guidance should either offer user opt-in/choice or clearly document a justified regional constraint, neither of which appears here.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The README centers the workflow around Chinese reminder content and zh-CN voices, and the operational examples are all presented in Chinese. Although English voices are listed later, the skill does not state that users may choose their preferred language or that the Chinese locale is an intentional region-specific constraint.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

This markdown file documents a network call to a local HTTP endpoint using curl, which transmits reminder content over the network. The surrounding text presents it as a quick test but does not warn that reminder content will be sent to another device/service or mention any privacy considerations.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · INSTALL.md (reported line 190)May include surrounding context.

bash
# 测试 TTS 连接
curl -X POST http://192.168.1.60:5000/play_tts \
  -H "Content-Type: application/json" \
  -d '{"text": "测试一下,这里是跨设备自动播报系统。"}'

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · README.md (reported line 35)May include surrounding context.

bash
# 测试 TTS 连接
curl -X POST http://192.168.1.60:5000/play_tts \
  -H "Content-Type: application/json" \
  -d '{"text": "测试一下,这里是跨设备自动播报系统。"}'

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
94% confidence
Finding

The skill clearly describes network communication with a Windows-hosted HTTP TTS server, but it does not declare any explicit tool scope such as permissions or allowed-tools. This creates a transparency and policy-enforcement gap: an agent or platform may permit undeclared network access, and users are not clearly warned that their text will be transmitted off-host to another machine for playback.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The skill encourages sending reminder text to a Windows HTTP endpoint for immediate audible playback, but the user-facing description lacks a clear warning about transmission over the network and the privacy implications of speaking messages aloud. This can expose sensitive household, medical, or scheduling information to interception on the network or unintended listeners in the physical environment.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The client defaults to "zh-CN-XiaoxiaoNeural", which implicitly fixes output to a Chinese locale when the user does not choose a voice. This is a natural-language locale constraint with no opt-in or documented justification in the file.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
83% confidence
Finding

The notify method sends input.text, voice, and volume to a remote service via POST /play_tts. In this file there is no confirmation prompt, logging, comment, or docstring disclosing that user-provided content is transmitted over the network.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The client hard-codes zh-CN-XiaoxiaoNeural as the default voice, which imposes a specific language/locale choice when the caller does not supply one. This is a natural-language policy concern because the skill does not offer an explicit opt-in or neutral default for language selection.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The manifest sets the default voice to "zh-CN-XiaoxiaoNeural", which implicitly forces Chinese locale output unless the user overrides it. This is a natural-language locale policy concern because the skill does not indicate any user choice or opt-in for language selection.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The manifest hard-codes zh-CN-XiaoxiaoNeural as the default voice, which imposes a specific language/locale choice on users. The file does not indicate that users are asked to opt in to this locale or that the skill is intentionally limited to a Chinese-language context.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

This markdown file contains user-facing instructional content exclusively in Chinese, and nowhere indicates that users may choose another language or that the guide is intentionally limited to a Chinese-speaking audience. Under the language/locale policy, forcing a specific language without opt-in can be a natural-language policy violation.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
79% confidence
Finding

This markdown file includes direct instructions to edit /home/cmos/.openclaw/openclaw.json and copy files into /home/cmos/.openclaw/extensions, which affect local application configuration and filesystem state. The guide does not include any warning to back up existing configuration or note that these changes modify the user's local OpenClaw setup.

Content

No source excerpt is available for this finding.

Static analysis

Detected: suspicious.destructive_delete_command

Documentation contains a destructive delete command without an explicit confirmation gate.

Warn
Code
suspicious.destructive_delete_command
Location
INSTALL.md:211