Back to skill

Security audit

Viral Video Replicator

Security checks for vulnerabilities and agentic risk

Overview

The skill appears purpose-aligned, but it asks users to provide reusable API/storage credentials and sends video frames, audio, and transcripts to external services without enough privacy or secret-handling safeguards.

Review this skill before installing. Use it only with videos and likenesses you have rights to process, assume extracted frames/audio/transcripts may be sent to Volcano/ByteDance-related services, and avoid pasting long-lived access keys into chat. Prefer temporary, least-privilege credentials limited to a dedicated bucket/prefix, rotate them after use, and install only from a pinned reviewed revision with pinned dependencies.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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 (3)

T08 · Insecure Dependencies

Warning
Location
README.md:116
Finding

Skill Installation Uses a Mutable Remote Repository

Content
View full analysis

Vulnerability Details

File Location: README.md, lines 116-120
Vulnerability Type: Mutable remote dependency without commit or integrity pinning
Risk Level: Medium

bash
### Install

```bash
# Claude Code users
claude install-skill https://github.com/dingtom336-gif/outfit-video/tree/main/skills/viral-video-replicator
text

### Technical Analysis

The documented installation command retrieves the Skill from a mutable GitHub branch rather than a reviewed commit, immutable release artifact, or cryptographically verified package. Consequently, the effective Skill content installed by a user can change after this audit without any change to the command.

If the repository owner account, repository, or upstream branch is compromised, an attacker could replace the audited instructions with malicious Skill text or executable resources. The installer would then retrieve the modified version while the command continued to appear legitimate.

This is a supply-chain weakness rather than evidence that the currently audited repository contains a malicious payload.

### Attack Path

1. An attacker compromises the upstream GitHub account, repository, or publishing workflow.
2. The attacker modifies the referenced Skill directory on the mutable branch.
3. A user runs the documented `claude install-skill` command.
4. The installer retrieves the modified, unaudited content.
5. When loaded, the modified Skill can issue malicious instructions or invoke available tools under the Agent's granted permissions.

### Impact Assessment

The potential scope is limited by the privileges granted to the Agent and Skill installer. In a tool-enabled environment, a compromised Skill could access files available to the Agent, make network requests, expose conversation data, or execute commands permitted by the host. It would not inherently obtain operating-system privileges beyond those of the invoking user.
Remediation
View remediation

Remediation Suggestions

  • Replace the mutable branch URL with an immutable, reviewed commit reference or signed release tag.
  • Publish checksums or signed provenance for release artifacts.
  • Document the exact reviewed revision in the installation instructions.
  • Require users or the installer to verify artifact integrity before enabling the Skill.
  • Establish a release process that prevents tags from being moved or overwritten.

T08 · Insecure Dependencies

Warning
Location
references/asr-pipeline.md:8
Finding

Python SDK Dependency Is Installed Without Version or Integrity Pinning

Content
View full analysis

Vulnerability Details

File Location: references/asr-pipeline.md, lines 8-11
Vulnerability Type: Unpinned third-party package installation
Risk Level: Medium

markdown
### SDK
- Uses `tos` Python SDK (TosClientV2)
- Install: `pip install tos`

Technical Analysis

The installation instruction retrieves whichever tos release the package index currently resolves. It does not specify an audited version, artifact hash, package index, or verified publisher. A future compromised or malicious release could therefore be installed automatically.

The short, generic package name also makes it important to verify that the resolved package is the intended official Volcano Engine SDK. The audited documentation provides no integrity or publisher validation.

Attack Path

  1. The package publisher account or package distribution infrastructure is compromised, or a malicious release is otherwise published under the resolved package name.
  2. A user follows the documented pip install tos instruction.
  3. Pip downloads the current compromised package or source distribution.
  4. Malicious code executes during package build, installation, import, or later ASR pipeline use.
  5. The code runs with the privileges of the Python or Agent process.

Impact Assessment

A compromised dependency could read files and environment variables available to the invoking process, including TOS credentials and API tokens used by this Skill. It could also alter uploaded data, make arbitrary network requests, or execute commands with the invoking user's privileges. No direct privilege escalation beyond that account is demonstrated.

Remediation
View remediation

Remediation Suggestions

  • Confirm and document the official package name and publisher.
  • Pin the SDK to a reviewed exact version, such as tos==X.Y.Z.
  • Use a lock file and require hashes for all downloaded artifacts.
  • Install from a trusted, explicitly configured package index.
  • Run dependency vulnerability and provenance checks in the release workflow.
  • Upgrade dependencies only through a controlled review and testing process.

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:46
Finding

Long-Lived API and Storage Credentials Are Collected Through Agent Clarification

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 46-50 and 69-73
Vulnerability Type: Plaintext secret collection through conversational context
Risk Level: Medium

markdown
**Cloud APIs (collected via clarification):**

REQUIRED: ARK_API_KEY + ARK_VISION_MODEL (Vision LLM for frame analysis) CONDITIONAL: ASR_ACCESS_TOKEN (if video has dialogue) CONDITIONAL: TOS credentials (if ASR is needed — audio transfers through TOS)

text
markdown
If yes -> ask for ASR_ACCESS_TOKEN.

**Q3: Audio Storage (CONDITIONAL — only if Q2 = yes)**

Technical Analysis

The Skill directs the Agent to collect API access tokens and TOS credentials through its clarification flow. It does not require a platform secret store, protected environment variables, credential redaction, restricted-scope tokens, or suppression of secrets from conversation logs and error output.

Secrets entered directly into a conversation may remain in chat history, Agent context, telemetry, debugging traces, or exported transcripts. TOS access and secret keys are particularly sensitive because they may be reusable outside the current Skill invocation.

The audit found no hardcoded credentials and no instruction to transmit credentials to an unrelated destination. The weakness concerns the collection and handling method.

Attack Path

  1. The Skill asks the user to supply the ASR token or TOS credentials.
  2. The user enters those values directly into the conversation.
  3. The values become part of conversation history or operational logs.
  4. A party with access to retained histories, telemetry, support exports, or exposed Agent context obtains the credentials.
  5. The party reuses the credentials against the associated API or storage account until they expire or are revoked.

Impact Assessment

Exposure of the Vision or ASR token could permit unauthorized API calls and consumption of the account's quota. Exposure of ...[truncated 260 chars]

Remediation
View remediation

Remediation Suggestions

  • Never request secret values directly in conversational messages.
  • Require credentials to be supplied through environment variables or the host platform's secret manager.
  • Ask only whether each secret has been configured, not for its value.
  • Prevent secrets from appearing in prompts, logs, exception messages, generated reports, and API response dumps.
  • Use short-lived, narrowly scoped credentials restricted to the required bucket, object prefix, and API operations.
  • Prefer temporary security tokens over long-lived access and secret key pairs.
  • Document credential rotation and immediate revocation procedures.
  • Display an explicit privacy and external-processing notice before uploading audio, frame grids, or transcripts.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • System Prompt LeakageDirect Leakage, Indirect Extraction, Tool-Based Exfiltration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
Findings (12)

Missing User Warnings

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The README instructs users to use cloud APIs, ASR services, and object storage credentials for processing videos, but it does not clearly disclose that video content, extracted frames, and transcripts may be transmitted to third-party services. In a skill designed to analyze competitor or user-provided videos, this omission can cause sensitive or copyrighted content to be uploaded externally without informed consent.

Content

No source excerpt is available for this finding.

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

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

md
- **Local tools**: FFmpeg + ffprobe (`brew install ffmpeg`)
- **Cloud APIs**: Volcano Engine API Key + Vision model (doubao-seed-1-6-vision-250815)
- **Optional**: Seed-ASR-2.0 access token + TOS storage credentials (needed when video has dialogue)

### Usage

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The README lists activation phrases such as "帮我复刻这个爆款视频", "分析一下这个视频是怎么拍的", "Replicate this viral video", and "Analyze how this video was made" without defining boundaries or exclusion conditions. These requests are generic video-analysis intents that could match ordinary conversation and the document does not specify when this skill should or should not activate.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The manifest description is primarily written in Chinese and all example trigger phrases and user-facing flows are oriented toward Chinese-language use, but the skill does not state that this is a China-specific or Chinese-only tool. Because the policy scope applies to all file types, this is a natural-language locale constraint without user opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill instructs the agent to ask required clarification questions using fixed Chinese wording, with no option to adapt to the user's language. This creates a locale/language policy issue because the skill forces a specific language rather than offering or inheriting user preference.

Content

No source excerpt is available for this finding.

Behavior Manipulation

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Subtle instructions detected that may alter agent decision-making or introduce hidden biases.

Content

Scanner excerpt · SKILL.md (reported line 273)May include surrounding context.

md
| Seedance prompt assembly fails | Return analysis only | Analysis JSON + transcript | ~30% — user has data but no ready-to-use prompt |
| FFmpeg unavailable (user provides screenshots) | Manual frame mode | Analysis from user-provided images | ~40% — no timestamps, uneven sampling, incomplete frame coverage |

Always prefer delivering partial results over delivering nothing. Every degraded output **MUST** clearly state: (1) what is missing, (2) why, and (3) the estimated quality impact.

See [references/fallbacks.md](references/fallbacks.md) for detailed recovery procedures per failure case.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The document specifies uploading audio to object storage and sending a presigned URL to a third-party ASR service, but it provides no requirement for user notice, consent, or data-handling constraints. Because audio often contains personal or sensitive information, this omission can lead to undisclosed sharing of user content with external services and create privacy, compliance, and trust risks.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The recovery message in Case 1 is written only in Chinese ("请在火山方舟控制台获取 API Key...") while the rest of the file is in English. This creates a natural-language locale policy issue because it imposes a language on users without opt-in or explanation that the skill is intended only for Chinese-speaking or region-specific users.

Content

No source excerpt is available for this finding.

Indirect Prompt Extraction

Medium
Category
System Prompt Leakage
Confidence
85% confidence
Finding

Skill contains patterns that could indirectly extract system prompts through rephrasing, translation, summarization, or side-channel techniques.

Content

Scanner excerpt · references/reverse-prompt.md (reported line 1)May include surrounding context.

md
# Reverse Prompt Assembly

> **Role:** Defines the 4-mode prompt assembly logic for converting Vision analysis into Seedance 2.0 prompts.
> Load at: Step 6-7 (building prompt and SOP). Uses the analysis JSON from Step 4 as input.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The file defines output strings and parameter labels in Chinese, such as gender terms and pronouns, and later uses Chinese-only prompt templates and upload labels. Because the skill does not provide user opt-in or explain that it is intentionally limited to Chinese-language prompt generation, it appears to force a specific language/locale.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

Both documented system prompts are written to require Chinese-language behavior, but the file does not offer a language option or explain that the skill is intentionally limited to a Chinese-language workflow. This creates a natural-language policy concern because the skill appears to impose a specific language/locale without user opt-in.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The document specifies sending base64-encoded frame grids and audio-derived transcript content to an external Vision API, but does not mention any user notice, consent, or data-handling disclosure. In a skill built for reverse-engineering user-supplied videos, this can expose sensitive visual, biometric, or spoken content to a third-party service without informed user awareness.

Content

No source excerpt is available for this finding.

Static analysis

Detected: suspicious.prompt_injection_instructions

Prompt-injection style instruction pattern detected.

Warn
Code
suspicious.prompt_injection_instructions
Location
references/vision-analysis.md:11