Back to skill

Security audit

视频提取文字

Security checks for vulnerabilities and agentic risk

Overview

This skill is a straightforward local video transcription helper with disclosed file writes, temporary processing, and bounded parallelism.

Install this if you are comfortable letting the skill read local videos you name, run ffprobe/Whisper via uv, create TXT files next to those videos or at your chosen output path, and store Whisper models under ~/.cache/whisper. Specify --language for non-Chinese content and only allow overwrite when you intend to replace an existing TXT.

Vulnerability Patterns
  • Output HandlingUnvalidated Output Injection, Cross-Context Output, Unbounded Output
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (5)

subprocess module call

Medium
Category
Dangerous Code Execution
Content
def run_checked(command: list[str], *, capture: bool = False) -> subprocess.CompletedProcess[str]:
    return subprocess.run(
        command,
        check=True,
        text=True,
Confidence
70% confidence
Finding
subprocess module calls execute external commands. Without careful input validation, this enables command injection.

Lp3

Medium
Category
MCP Least Privilege
Confidence
70% confidence
Finding
Without declared permissions the skill's intent is opaque and cannot be validated.

Natural-Language Policy Violations

Medium
Confidence
92% confidence
Finding
The markdown states '用户未指定语言时默认中文 `zh`', which imposes a specific language/locale choice without user opt-in. The policy for this audit flags language or locale constraints unless the skill offers a choice or clearly justifies the restriction as region-specific.

Natural-Language Policy Violations

Medium
Confidence
95% confidence
Finding
The CLI sets `--language` to `zh` by default, which imposes a specific language/locale choice unless the user overrides it. This is a natural-language policy concern because the skill forces a locale preference rather than prompting or auto-detecting by default.

Unvalidated Output Injection

High
Category
Output Handling
Content
def run_checked(command: list[str], *, capture: bool = False) -> subprocess.CompletedProcess[str]:
    return subprocess.run(
        command,
        check=True,
        text=True,
Confidence
95% confidence
Finding
Model output is used without validation or sanitization. Unvalidated output injected into downstream contexts (SQL, shell, HTML) enables injection attacks and arbitrary code execution.

Static analysis

No suspicious patterns detected.