Back to skill

Security audit

VibeVideoIO AI Script to Video

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly matches its video-creation purpose, but it needs Review because its CLI exposes sensitive login data to avoidable risks and can overwrite or delete arbitrary local files via a session-file option.

Review this before installing. Use it only if you are comfortable sending scripts and account workflow data to bollo.video or vibevideo.io. Avoid custom --api-base, --web-base, and --session-file arguments; prefer the default HTTPS endpoints and default OpenClaw secrets path, or --no-save for ephemeral login. A safer release should enforce HTTPS allowlisted origins and restrict session files to the intended secrets directory.

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

T09 · Insecure Skill Coding Practices

Error
Location
skills/vibevideoio-ai-script-to-video/scripts/vibevideo-studio.mjs:408
Finding

HTTPS Downgrade Allows Exposure of Authentication Credentials, Tokens, and User Scripts

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
skills/vibevideoio-ai-script-to-video/scripts/vibevideo-studio.mjs:236
Finding

Unrestricted Session File Path Enables Arbitrary File Overwrite and Deletion

Content
View full analysis
{}); } export async function deleteFileIfExists(filename) { try { awa ...[truncated 3023 chars]
Remediation
View remediation
Vulnerability Patterns
  • 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
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
Findings (45)

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

If the underlying code really supports Google OAuth, WeChat login, identity/profile access, token management, access-control features, or service flag mutation beyond the stated purpose, that is a meaningful privilege expansion. In an agent skill, undeclared identity, session, and account-management capabilities can lead to credential misuse, account takeover assistance, or unauthorized administrative actions under a misleadingly narrow description.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

If the underlying code really supports Google OAuth, WeChat login, identity/profile access, token management, access-control features, or service flag mutation beyond the stated purpose, that is a meaningful privilege expansion. In an agent skill, undeclared identity, session, and account-management capabilities can lead to credential misuse, account takeover assistance, or unauthorized administrative actions under a misleadingly narrow description.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

If the underlying code really supports Google OAuth, WeChat login, identity/profile access, token management, access-control features, or service flag mutation beyond the stated purpose, that is a meaningful privilege expansion. In an agent skill, undeclared identity, session, and account-management capabilities can lead to credential misuse, account takeover assistance, or unauthorized administrative actions under a misleadingly narrow description.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

If the underlying code really supports Google OAuth, WeChat login, identity/profile access, token management, access-control features, or service flag mutation beyond the stated purpose, that is a meaningful privilege expansion. In an agent skill, undeclared identity, session, and account-management capabilities can lead to credential misuse, account takeover assistance, or unauthorized administrative actions under a misleadingly narrow description.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

If the underlying code really supports Google OAuth, WeChat login, identity/profile access, token management, access-control features, or service flag mutation beyond the stated purpose, that is a meaningful privilege expansion. In an agent skill, undeclared identity, session, and account-management capabilities can lead to credential misuse, account takeover assistance, or unauthorized administrative actions under a misleadingly narrow description.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
93% confidence
Finding

If the underlying code really supports Google OAuth, WeChat login, identity/profile access, token management, access-control features, or service flag mutation beyond the stated purpose, that is a meaningful privilege expansion. In an agent skill, undeclared identity, session, and account-management capabilities can lead to credential misuse, account takeover assistance, or unauthorized administrative actions under a misleadingly narrow description.

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 52)May include surrounding context.

md
- `skills/vibevideoio-ai-script-to-video/scripts/vibevideo-studio.mjs`

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 · references/architecture.md (reported line 92)May include surrounding context.

md
### Phase 2
- email-code fallback
- access token overview
- provider-side task polling UI

### Phase 3

Credential Access

High
Category
Privilege Escalation
Confidence
91% confidence
Finding

The documented flow includes taking a local access token and writing it into browser cookies, which is a sensitive credential-handling operation. In an agent-integration context, any unnecessary exposure of token setup flows increases the risk of session fixation, token misuse, or unauthorized account access if the bridge or agent can obtain or replay those values.

Content

Scanner excerpt · references/current-system-map.md (reported line 27)May include surrounding context.

md
- `GET /api/auth/email-verify`
  - magic-link verification redirect
- `POST /api/auth/email-token-setup`
  - writes cookies from a local access token
- `PUT /api/access/tokens/{token_id}`
  - can expire the current saved session token during logout

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
95% confidence
Finding

A DELETE endpoint for sub-user management is a high-risk capability because an agent intended only for video creation could be induced to remove users or alter account access. In this skill context, the mismatch is especially dangerous: destructive identity-management actions are unrelated to the user-facing task and create a clear path for tool-parameter abuse if the agent can be prompted to target arbitrary sub_user_id values.

Content

Scanner excerpt · references/current-system-map.md (reported line 40)May include surrounding context.

md
- `GET /api/access/sub-users`
- `POST /api/access/sub-users`
- `PUT /api/access/sub-users/{sub_user_id}`
- `DELETE /api/access/sub-users/{sub_user_id}`
- `GET /api/access/tokens`
- `PUT /api/access/tokens/{token_id}`

Credential Access

High
Category
Privilege Escalation
Confidence
83% confidence
Finding

The checklist recommends storing an issued access token in a local OpenClaw session file. File-based local token storage can increase exposure to token theft through local compromise, weak file permissions, accidental persistence, or unintended reuse beyond the intended session lifetime; in a bridge/provider integration, that could allow unauthorized access to user video accounts and project actions.

Content

Scanner excerpt · references/provider-integration-checklist.md (reported line 23)May include surrounding context.

md
For the current Studio bridge runtime:
- default site selection to `bollo.video`
- let users switch explicitly to `vibevideo.io`
- store the issued access token in a local OpenClaw session file instead of relying on browser cookies

## 3. Choose Auth Strategy
- prefer `session_handoff`

Context Leakage

High
Category
Data Exfiltration
Confidence
85% confidence
Finding

Code or instructions that leak agent conversation context to external services, potentially exposing sensitive user interactions.

Content

Scanner excerpt · references/provider-integration-checklist.md (reported line 39)May include surrounding context.

md
- do not expose the primary auth cookie to the provider
- set a short bridge token TTL
- whitelist provider origins
- log session issuance and exchange events
- keep provider scopes explicit and revocable

## 6. OpenClaw-Specific Recommendation

Direct Prompt Extraction

High
Category
System Prompt Leakage
Confidence
85% confidence
Finding

Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.

Content

Scanner excerpt · skills/vibevideoio-ai-script-to-video/scripts/vibevideo-studio.mjs (reported line 595)May include surrounding context.

js
if (optional) {
    return "";
  }
  return promptValue(rl, label, defaultValue, { optional });
}

async function promptChoice(rl, label, options, defaultIndex = 0) {

Direct Prompt Extraction

High
Category
System Prompt Leakage
Confidence
85% confidence
Finding

Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.

Content

Scanner excerpt · skills/vibevideoio-ai-script-to-video/scripts/vibevideo-studio.mjs (reported line 1481)May include surrounding context.

js
if (optional) {
    return "";
  }
  return promptValue(rl, label, defaultValue, { optional });
}

async function promptChoice(rl, label, options, defaultIndex = 0) {

Direct Prompt Extraction

High
Category
System Prompt Leakage
Confidence
85% confidence
Finding

Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.

Content

Scanner excerpt · skills/vibevideoio-ai-script-to-video/scripts/vibevideo-studio.mjs (reported line 1494)May include surrounding context.

js
if (optional) {
    return "";
  }
  return promptValue(rl, label, defaultValue, { optional });
}

async function promptChoice(rl, label, options, defaultIndex = 0) {

Direct Prompt Extraction

High
Category
System Prompt Leakage
Confidence
85% confidence
Finding

Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.

Content

Scanner excerpt · skills/vibevideoio-ai-script-to-video/scripts/vibevideo-studio.mjs (reported line 1509)May include surrounding context.

js
if (optional) {
    return "";
  }
  return promptValue(rl, label, defaultValue, { optional });
}

async function promptChoice(rl, label, options, defaultIndex = 0) {

Credential Access

High
Category
Privilege Escalation
Confidence
90% confidence
Finding

The script receives an access token from the remote service and persists it to a local session file for reuse. Although this supports normal authentication, stored bearer tokens are highly sensitive: if the local file is exposed through weak host isolation, backups, logs, or multi-user environments, an attacker can reuse the token to access the victim's account and perform authenticated actions.

Content

Scanner excerpt · skills/vibevideoio-ai-script-to-video/scripts/vibevideo-studio.mjs (reported line 1381)May include surrounding context.

js
const accessToken = normalizeToken(verifyPayload?.data?.access_token || "");
  if (!accessToken) {
    throw createApiError("Login succeeded but access token is missing");
  }

  const storedSession = {

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 · src/manifests.ts (reported line 31)May include surrounding context.

ts
path: "/api/auth/callback",
      responseContract: "legacy",
      localeHeader: true,
      notes: "Returns a local VibeVideo access token.",
    },
    tags: ["auth", "google", "oauth"],
  },

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
94% confidence
Finding

The skill advertises capabilities that inherently require sensitive operations such as network access, shell execution, and possibly environment variable use, but the manifest shown does not declare any explicit tool or permission scope. In an agent setting, missing scope boundaries increases the risk of over-privileged execution, making it harder to enforce least privilege or prevent unintended access paths.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The description is broad enough to match common user requests like 'make a video' or 'generate an AI video' without clearly limiting when the skill should activate. Over-broad invocation criteria can cause an agent to trigger networked login and content-generation workflows unexpectedly, increasing the risk of unintended external actions and data disclosure.

Content

No source excerpt is available for this finding.

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

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

md
# VibeVideoIO AI Script to Video

This package exposes a single canonical skill:
- `skills/vibevideoio-ai-script-to-video/SKILL.md`

## Install Notes
- Local OpenClaw skill registration is manual via `npm run openclaw:register`

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

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

md
# VibeVideoIO AI Script to Video

This package exposes a single canonical skill:
- `skills/vibevideoio-ai-script-to-video/SKILL.md`

## Install Notes
- Local OpenClaw skill registration is manual via `npm run openclaw:register`

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

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

md
# VibeVideoIO AI Script to Video

This package exposes a single canonical skill:
- `skills/vibevideoio-ai-script-to-video/SKILL.md`

## Install Notes
- Local OpenClaw skill registration is manual via `npm run openclaw:register`

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The 'When To Use' section includes very common, ambiguous phrases that overlap with generic creative-assistant requests. In the context of a skill that may authenticate to third-party services and submit user content remotely, ambiguous triggers make accidental invocation materially more dangerous.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

Automatically choosing a site based on language introduces hidden routing of user data and credentials to one of two services without explicit consent. In a login- and project-management skill, silent site selection can create privacy, account confusion, and wrong-tenant risks, especially if users have different accounts or expectations across domains.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.