Back to skill

Security audit

Cyberpunk Transform Video Gen Seedance2.0

Security checks for vulnerabilities and agentic risk

Overview

This skill is not malicious, but it should go through Review because its paid WeryAI helper can submit broader video-generation requests than the Seedance-only cyberpunk workflow describes.

Before installing, assume this skill will use a WeryAI API key for paid network calls. Use a limited or separate WeryAI account if possible, require confirmation before every submission, and verify the final JSON shows model SEEDANCE_2_0, an allowed duration/resolution/aspect ratio, no negative_prompt, and only the intended HTTPS image input. A safer version would enforce those checks inside scripts/video_gen.js rather than relying on instructions alone.

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/video_gen.js:162
Finding

Missing Enforcement of Declared Model, Input, and Generation Restrictions

Content
View full analysis
0) return 'multi_image'; if (typeof params.image === 'string' && params.image) return 'image'; return 'text'; } function coerceBool(v, defaultVal = false) { if (v == null) return defaultVal; if (typeof v === 'boolean') return v; return String(v).toLowerCase() === 'true'; } function hasNonEmptyModel(params) { const m = params.model; return m != null && String(m).trim() !== ''; } function buildRequestBody(params) { const model = String(params.model).trim(); const body = { prompt: params.prompt, model, duration: Number(params.duration) || 5, }; if (params.aspect_ratio) body.aspect_ratio = params.aspect_ratio; if (params.resolution) body.resolution = params.resolution; if (params.generate_audio != null) body.generate_audio = coerceBool(params.generate_audio, false); if (params.negative_prompt) body.negative_prompt = params.negative_prompt; if (params.image) body.image = params.image; if (params.images) body.images = params.images.slice(0, 3); return body; } async function submitTask(params, apiKey) { if (!hasNonEmptyModel(params)) { return { ok: false, phase: 'failed', errorCode: 'MISSING_PARAM', errorMessage: "'model' is required in JSON parameters (no default model).", }; } const mode = detectMode(params); const pathMap = { text: '/v1/generation/text-to-video', image: '/v1/generation/image-to-video', multi_image: '/v1/generation/multi-image-to-video', }; const body = buildRequestBody(params); let res; try { res = await apiRequest('POST', pathMap[mode], body, apiKey); } catch (err) { ...[truncated 3906 chars]
Remediation
View remediation
Vulnerability Patterns
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (13)

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The documented skill claims a tightly scoped, cyberpunk-only Seedance 2.0 workflow, but the described underlying CLI supports broader model access, arbitrary prompting, task polling, and other generation paths. This mismatch is dangerous because users and orchestrators may trust the narrower description while the implementation can perform broader paid network actions than expected, weakening reviewability and policy enforcement.

Content

No source excerpt is available for this finding.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- `WERYAI_API_KEY` **must be set** before running `video_gen.js`.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- `WERYAI_API_KEY` **must be set** before running `video_gen.js`.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- `WERYAI_API_KEY` **must be set** before running `video_gen.js`.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- `WERYAI_API_KEY` **must be set** before running `video_gen.js`.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- `WERYAI_API_KEY` **must be set** before running `video_gen.js`.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
89% confidence
Finding

The skill declares access to environment secrets and networked behavior in metadata, but does not define an explicit tool/permission scope to constrain what the agent may use. In an agentic environment, this increases the chance of over-broad execution, secret exposure, or unintended external calls because the actual capability boundary is implicit rather than enforced.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

Repeatedly stating the skill is locked to SEEDANCE_2_0 while simultaneously acknowledging there is no code enforcement creates a deceptive assurance boundary. That can cause operators to over-trust the skill, approve access to API keys, and miss that the actual runtime can be repurposed for broader model usage or unexpected billable operations.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The file explicitly admits that the CLI does not enforce the claimed model restriction, meaning the safety boundary exists only in instructions. Instruction-only controls are weak in adversarial or automated settings, so an agent or modified invocation could submit other models or behaviors while appearing to comply with the skill's branding.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The instructions require converting prompts into a full English production prompt before every submission, and the same English-only requirement is repeated later in the workflow. This forces a specific language for user interaction/output behavior without user opt-in or a documented region-specific justification, which matches the language/locale policy violation criteria.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The documented commands expose generic text-to-video, image-to-video, and multi-image generation workflows, while the skill is described as a narrowly scoped cyberpunk transformation tool using Seedance 2.0 only. That mismatch broadens the operational scope available to agents, making misuse easier and weakening assurances about what the skill actually does.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The documentation explicitly states that callers must supply the model and that the script does not enforce the skill's Seedance 2.0-only restriction. This creates a policy bypass: an agent using this skill can invoke arbitrary WeryAI models contrary to the manifest, expanding capability beyond the declared trust boundary and enabling unintended content generation behaviors.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The top-of-file docstring presents the skill interface and safety guidance entirely in Chinese, which imposes a specific language on users without any visible opt-in or alternative. Under the stated policy, language/locale constraints should either be optional for the user or clearly justified as region-specific.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.