Windows TTS (WSL2)
PassAudited by VirusTotal on May 12, 2026.
Overview
Type: OpenClaw Skill Name: windows-tts-wsl2 Version: 1.1.1 The skill bundle is classified as suspicious due to a critical shell injection vulnerability in `scripts/say.sh`. The script constructs a PowerShell command using user-provided input for `--voice`, `--rate`, `--volume`, and the main text, but the input sanitization (using `sed 's/"/`"/g'`) is insufficient. This allows an attacker to inject arbitrary PowerShell commands by including characters like semicolons (`;`) in the input, potentially leading to remote code execution on the Windows host via WSL2.
Findings (0)
Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.
If the agent speaks text from an untrusted source or a maliciously crafted message, that text could cause commands to run on the Windows host under the current user.
The script builds a PowerShell command by interpolating user-supplied text and options into a string that is executed with -Command. Escaping only double quotes does not prevent PowerShell expansion such as $(), and RATE/VOLUME are inserted without validation.
if [[ -n "$RATE" ]]; then PS+=" \$s.Rate=[int]$RATE;"; fi ... TEXT_ESC=$(printf '%s' "$TEXT" | sed 's/"/`"/g'); PS+=" \$s.Speak(\"$TEXT_ESC\");"; powershell.exe -NoProfile -Command "$PS"
Do not use this on untrusted text until say.sh passes text as data rather than code, such as via a PowerShell script with param() arguments or stdin, and validates numeric options before invoking PowerShell.
Users may install it on unsupported systems, and the host PowerShell dependency may not be visible in capability metadata.
The metadata does not declare the Windows/WSL and powershell.exe dependency, even though SKILL.md and the scripts rely on PowerShell. This appears to be an under-declared runtime requirement rather than hidden behavior.
OS restriction: none; Required binaries (all must exist): none; Required binaries (at least one): none
Declare the Windows/WSL requirement and powershell.exe dependency so users and reviewers can see the expected environment.
