Back to skill

Security audit

K8s Self Hosted Whisper Api

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent Whisper transcription helper, but it sends sensitive audio over unauthenticated HTTP and has a prompt-handling bug that can allow local command execution.

Review before installing. Use only in a trusted internal environment, avoid sensitive recordings unless you accept the unauthenticated HTTP upload risk, and do not pass untrusted text to --prompt until the script is fixed to URL-encode arguments safely without building executable Python source.

Vulnerability Patterns
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (2)

T09 · Insecure Skill Coding Practices

Error
Location
transcribe.sh:87
Finding

Arbitrary Python Code Execution Through the Prompt Argument

Content
View full analysis
/dev/null || echo "${PROMPT}")" ``` ### Technical Analysis The user-controlled `PROMPT` value is interpolated directly into Python source passed to `python3 -c`. The shell's quoting protects the value from direct shell interpretation, but it does not make the resulting Python source safe. Quotes and Python syntax contained in the expanded value are parsed by the Python interpreter. An attacker can supply a prompt that closes the Python string and injects additional Python statements. For example, a value following this pattern can invoke operating-system commands: ```text '); __import__("os").system("id"); # ``` The constructed Python program would contain attacker-controlled executable syntax. Suppressing Python's standard error output does not prevent exploitation and may make failed or attempted exploitation less visible. The fallback `echo "${PROMPT}"` is also not a safe URL-encoding mechanism, although it does not independently produce code execution because the value remains quoted there. ### Attack Path 1. An attacker supplies or convinces an agent to use a malicious value for `--prompt`. 2. The argument parser stores that value in `PROMPT`. 3. Line 87 inserts it directly between Python string delimiters in the `python3 -c` source. 4. The malicious value terminates the intended string and appends Python statements. 5. `python3` executes those statements with the privileges and environment of the user running the Skill. 6. The injected code can invoke local commands, read accessible files, modify data, or initiate additional network requests. ### Impact Assessment Successful exploitation provides arbitrary local code execution under the accoun ...[truncated 355 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
transcribe.sh:96
Finding

Sensitive Audio and Prompt Data Transmitted Over Unauthenticated Plaintext HTTP

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (4)

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
95% confidence
Finding

The skill exposes shell and network-capable behavior but does not declare any explicit tool scope or permission boundaries. That makes it easier for an agent framework to invoke the skill without clear governance, increasing the chance of unintended network access and command execution around user-supplied file paths.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The trigger language is broad enough that the skill may activate for many general transcription or translation requests without clearly signaling that user audio will be sent to an internal HTTP service. Over-broad activation increases the risk of unintended data disclosure, especially for sensitive voice recordings or subtitles derived from them.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill sends user audio over plain HTTP to a network service and does not warn the user that their content leaves the local execution context. Audio often contains sensitive personal or business information, so undisclosed transmission over an unencrypted channel creates confidentiality and privacy risk, especially in shared or multi-tenant environments.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
78% confidence
Finding

The note states that --translate produces an English transcript regardless of source language. This imposes a specific language outcome without documenting user choice or opt-in, which can violate language or locale preference expectations.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.