Back to skill

Security audit

Holy ceremony & celebration style transform (Seedance 2.0)

Security checks for vulnerabilities and agentic risk

Overview

The skill discloses paid WeryAI API use, but its bundled CLI can submit broader paid video-generation requests than the Seedance-only workflow promises.

Install only if you are comfortable giving this skill access to a WeryAI API key and paying for generated tasks. Use it in an isolated account or environment, review the confirmation table carefully, and avoid sensitive prompts or non-public image URLs. The main risk is not evidence of theft or persistence; it is that the bundled script is more general than the advertised Seedance-only workflow and relies on the agent/user to keep requests scoped.

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:134
Finding

Declared Model and Request-Scope Restrictions Are Not Enforced

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); ``` The CLI additionally exposes out-of-scope operations at lines 456–463: ```javascript const valid = new Set([ 'wait', 'submit-text', 'submit-image' ...[truncated 3139 chars]
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (13)

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The skill's declared purpose is narrow, but the documented behavior includes broader generation workflows, image-to-video support, model listing, polling, and external API use. This mismatch is dangerous because users and security reviewers may approve the skill for a limited cosmetic transform while it actually enables a wider set of networked, billable operations with secret usage.

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
93% confidence
Finding

The skill declares runtime capabilities that imply access to secrets and outbound network use, but it does not explicitly scope or constrain allowed tools/permissions. That creates a trust and review gap: an agent or installer may execute code with broader powers than the user expects, including using WERYAI_API_KEY and making paid external API calls.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The instructions require agents to turn user input into a "full English production prompt" before every submission, regardless of the user's original language. This forces a specific language choice without offering the user a language or locale option, which matches the policy-violation criterion for language/locale constraints.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The trigger phrase 'Golden holy celebration glow for a team high-five, confetti blessing.' is broad and natural-language-like, so it can match ordinary user requests instead of a clearly scoped skill invocation. This increases the risk of unintended activation, causing the agent to invoke the skill in contexts where the user did not explicitly request it.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The document instructs users to send prompts and public image URLs to external WeryAI endpoints, but it only discusses API-key handling and omits any warning that user-supplied content will leave the local environment. This creates a real privacy and data-handling risk because users may unknowingly transmit sensitive prompts, proprietary media links, or personal data to third-party services.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill metadata promises a narrowly scoped, Seedance 2.0-only sacred-ceremony generator, but the implementation is a general-purpose WeryAI video CLI that accepts arbitrary models, prompts, and generation modes. This scope mismatch is dangerous because it defeats policy expectations and review assumptions, enabling broader capability than users or platform operators were led to approve.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The file’s user-facing header comments, command descriptions, examples, and environment-variable guidance are written entirely in Chinese. This creates a language/locale constraint in the skill’s natural-language interface without any opt-in, alternative language option, or documented region-specific justification.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

The models registry feature exposes account-available model enumeration unrelated to the skill's declared holy-ceremony purpose. While not a direct exploit by itself, it unnecessarily broadens capability discovery and can help a user pivot from the claimed narrow workflow into unsupported or higher-risk model usage.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.