Back to skill

Security audit

Xeonen Video Analyzer

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent video download/transcription helper, with the main cautions that it stores media-derived files locally and suggests sending transcripts to an AI tool.

Use this only for videos you are allowed to download and process. Choose an output directory intentionally, treat generated video/audio/transcript/frame files as potentially sensitive, and avoid piping transcripts into an AI agent that has tools, credentials, memory, or private workspace access unless you trust the content and have appropriate safeguards.

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 (1)

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/summarize.sh:16
Finding
Untrusted Transcript Content Is Passed to an AI Without Prompt Isolation## Vulnerability Details **File Location**: `scripts/summarize.sh`, lines 16–35 **Vulnerability Type**: Indirect prompt injection caused by unsafe handling of untrusted transcript content **Risk Level**: Medium ### Complete Code Snippet ```bash # Transcript'i oku ve özet için hazırla CONTENT=$(cat "$TRANSCRIPT" | head -c 50000) # AI'a gönder (clawdbot veya başka CLI) cat << EOF # Video Özeti ## İçerik Bu transcript'i analiz et ve şunları çıkar: 1. **Ana Konular** (bullet points) 2. **Önemli Noktalar** (key takeaways) 3. **Bahsedilen İsimler/Projeler** 4. **Rakamlar/İstatistikler** (varsa) 5. **Kısa Özet** (3-5 cümle) --- Transcript: $CONTENT EOF ``` The related documentation also recommends sending the transcript directly to an AI agent: ```bash cat outputs/transcript.txt | clawdbot ask "Summarize this video" ``` ### Technical Analysis The transcript is derived from potentially attacker-controlled video or audio. The script interpolates that content verbatim into an AI prompt without establishing an explicit trust boundary between the summarization instructions and the untrusted source material. An attacker can place spoken prompt-injection instructions in a video. Whisper then converts those instructions into transcript text, after which the generated prompt presents them to the AI alongside the legitimate summarization request. The documented direct-pipe command similarly sends the entire untrusted transcript to `clawdbot`. AI prompt delimiters alone do not guarantee isolation. If the receiving agent interprets transcript instructions as commands rather than quoted source data, it may abandon the requested summarization task or attempt operations available through its tools. The practical severity depends on the receiving agent's permissions, enabled tools, accessible context, and confirmation controls. ### Attack Path 1. An attacker publishes or supplies a video containing spoken instructions directed at an AI agent. 2. A user invokes ` ...[truncated 1112 chars]
Remediation
## Remediation Suggestions 1. Treat every transcript as untrusted data, regardless of its source. 2. Add a high-priority instruction stating that text inside the transcript is quoted source material and that any commands, policy statements, or tool requests contained in it must not be followed. 3. Pass the transcript through a structured API field or attachment intended for source documents rather than concatenating it into an instruction string. 4. Use explicit begin/end delimiters and ensure the transcript cannot alter the enclosing prompt structure. Delimiters should supplement, not replace, higher-priority trust instructions. 5. Run transcript summarization in a restricted agent profile with tools, shell access, sensitive context, credentials, memory writes, and external side effects disabled. 6. Require explicit user confirmation before any tool invocation resulting from analysis of transcript content. 7. Update `README.md` and `SKILL.md` to warn that media and transcripts may contain prompt-injection content. Replace the direct `clawdbot ask` examples with a constrained summarization workflow. 8. Consider a two-stage process that first extracts factual content in a tool-free environment and then summarizes only the structured extraction.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (7)

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding
The declared description presents a video-processing pipeline centered on downloading videos and extracting/analyzing their content with specific tools (yt-dlp, Whisper, ffmpeg). The actual code chunk only operates on an already-existing transcript text file and generates a prompt template for summarization. This is a materially different behavior and omits the core declared capabilities. While summarization/analysis is loosely related to the overall theme, the implemented functionality in this chunk is much narrower and does not match the primary declared purpose.

Natural-Language Policy Violations

Medium
Confidence
96% confidence
Finding
The script emits user-facing status and error text in Turkish such as 'URL gerekli!' and 'Kullanım', and similar Turkish output continues throughout the script. This imposes a specific language on users without opt-in or justification, which matches the language/locale policy violation criteria.

Natural-Language Policy Violations

Medium
Confidence
96% confidence
Finding
The script's comments, status messages, and generated prompt are written entirely in Turkish, which forces a specific language experience on users. There is no indication that the skill is intended only for Turkish-speaking users or any option to select another language.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The script reads transcript content and formats it for submission to an external AI tool, explicitly suggesting piping the full transcript to `clawdbot ask`, but it provides no warning that transcripts may contain sensitive or copyrighted material. In this skill context, the risk is more credible because the tool is specifically designed to download and transcribe third-party videos, increasing the chance that users will forward private, regulated, or proprietary content to external services unintentionally.

Missing User Warnings

Low
Confidence
87% confidence
Finding
This markdown file applies to SQP-2, and it documents behavior that creates multiple local artifacts such as downloaded videos, transcripts, and screenshots. While the outputs are listed later, there is no explicit user warning that running the skill will store potentially sensitive media-derived content on disk.

Missing User Warnings

Low
Confidence
91% confidence
Finding
The skill encourages downloading remote video content and storing multiple derived files locally, but it does not warn users about network access, disk usage, or the persistence of potentially sensitive media and transcripts. In a security-sensitive environment, this can lead to unintended data retention, policy violations, or processing of untrusted remote content without informed user consent.

Missing User Warnings

Low
Confidence
79% confidence
Finding
This code performs network activity by invoking yt-dlp against a user-provided URL, which transmits data to external services and retrieves remote content. Although the script prints progress messages, it does not clearly warn the user about the network operation or its implications; the brief usage comment also does not disclose this behavior.