Back to skill

Security audit

Audio Reply

Security checks for vulnerabilities and agentic risk

Overview

This audio TTS skill is coherent, but it needs Review because its examples can pass user or fetched text into shell-style commands without a safe argument boundary.

Review before installing. Use only public, non-sensitive URLs, and only run this skill if you are comfortable with uv downloading and executing the local TTS package. The main fix needed is to require TTS text to be passed as literal data, not interpolated into shell source; URL fetching should also validate redirects and resolved addresses, and broad triggers should be narrowed or confirmed.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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

Error
Location
SKILL.md:83
Finding

Untrusted TTS text may be interpolated into a shell command

Content
View full analysis
/dev/null ``` ``` The same unsafe command-construction pattern also appears in the TTS example at `SKILL.md:50-57` and the example workflow at `SKILL.md:114-128`. ### Technical Analysis The Skill instructs the agent to fetch webpage content or generate a response and substitute that content into the `--text` argument of a shell command. The documentation does not require use of a structured process API, argument array, securely created input file, or another mechanism that keeps content separate from shell syntax. If an implementation constructs the displayed command as a string and replaces `"Your response text"` with fetched or user-controlled content, shell-significant characters can break the intended quoting context. Command substitutions such as `$(...)` and backticks are evaluated even within double quotes when they appear in shell source. Embedded quotes can also terminate the argument and introduce redirections, separators, or additional commands. The instruction stating that commands from fetched content must not be executed is a policy guardrail, but it does not technically prevent indirect execution caused by unsafe shell interpolation. ### Attack Path 1. An attacker publishes a public webpage containing shell syntax in article text, such as command substitution or a ...[truncated 1454 chars]
Remediation
View remediation

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
SKILL.md:20
Finding

URL filtering does not require redirect and resolved-address validation

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (8)

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
85% 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 · SKILL.md (reported line 120)May include surrounding context.

--model mlx-community/chatterbox-turbo-fp16
--text "Here's what I found... [article summary]"
--play --file_prefix /tmp/audio_reply_1706123456 4. Delete: rm -f /tmp/audio_reply_1706123456*.wav 5. Confirm: "Done reading the article to you."

text

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
85% 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 · SKILL.md (reported line 135)May include surrounding context.

--model mlx-community/chatterbox-turbo-fp16
--text "Hey! So I can help you with all kinds of things..."
--play --file_prefix /tmp/audio_reply_1706123789 3. Delete: rm -f /tmp/audio_reply_1706123789*.wav 4. (No text output needed - audio IS the response)

text

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The documented triggers are very broad natural-language phrases like "speak" and "say it," which can easily appear in ordinary conversation and cause unintentional activation of the skill. In a voice/output-generating skill, ambiguous activation increases the chance of accidental network fetches or local command execution paths being reached without clear user intent.

Content

No source excerpt is available for this finding.

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
85% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

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

  1. Copy the skill to your Claude Code skills directory:
    bash
    mkdir -p ~/.claude/skills/audio-reply
    cp SKILL.md ~/.claude/skills/audio-reply/
    

Session Persistence

Medium
Category
Rogue Agent
Confidence
60% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

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

  1. Copy the skill to your Claude Code skills directory:
    bash
    mkdir -p ~/.claude/skills/audio-reply
    cp SKILL.md ~/.claude/skills/audio-reply/
    

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The phrase "voice reply" is somewhat ambiguous and may match user language that is not intended to invoke this skill. While less risky than the shorter triggers, ambiguity still increases the chance of accidental activation and unnecessary tool use.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
61% confidence
Finding

The usage section presents only English trigger phrases and natural-language commands, which may indicate the skill expects interaction in a specific language. There is no documentation stating whether other languages are supported or whether English-only behavior is an intentional, justified constraint.

Content

No source excerpt is available for this finding.

Vague Triggers

Low
Category
Not specified by scanner
Confidence
78% confidence
Finding

The phrase "voice reply" is somewhat ambiguous and may match user language that is not intended to invoke this skill. While less risky than the shorter triggers, ambiguity still increases the chance of accidental activation and unnecessary tool use.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.