Back to skill

Security audit

Ai Short Film Studio

Security checks for vulnerabilities and agentic risk

Overview

This skill has a coherent AI short-film purpose, but its Google Flow route asks for overbroad browser/session access and includes unsafe local file handling that users should review before installing.

Review this skill before installing. Use a dedicated Chrome profile and isolated Google account for Route C, avoid running the provided pkill command against your normal browser session, close the remotely debuggable browser after use, and do not run batch generation in directories containing valuable video-* files. Replace the Tencent Cloud identifiers with your own placeholders, avoid sending sensitive scripts or media to third-party services, and only use a trusted, pinned google-flow-automation dependency.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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
Findings (4)

T09 · Insecure Skill Coding Practices

Error
Location
scripts/batch-generate.js:60
Finding

Unsafe deletion of pre-existing media files in the output directory

Content
View full analysis
1) { for (let i = 1; i < files.length; i++) { try { fs.unlinkSync(files[i].path); console.log(` 🗑️ 清理多余文件: ${files[i].name}`); } catch (e) { /* 忽略 */ } } } } ``` The files subject to this operation are selected by the following code at lines 49-59: ```javascript function getVideoFiles() { return fs.readdirSync(OUTPUT_DIR) .filter(f => f.startsWith('video-') && (f.endsWith('.mp4') || f.endsWith('.jpg'))) .map(f => ({ name: f, path: path.join(OUTPUT_DIR, f), mtime: fs.statSync(path.join(OUTPUT_DIR, f)).mtime })) .sort((a, b) => b.mtime - a.mtime); } ``` ### Technical Analysis The cleanup routine deletes every matching `video-*.mp4` or `video-*.jpg` file except the most recently modified one. It does not verify that the files were generated by the current process, belong to the current project, or are recorded in a trusted temporary-file manifest. The output directory is supplied by the user through `--output`. If the user selects an existing directory containing unrelated media with matching names, the script treats those files as disposable generation artifacts. Errors are silently ignored, reducing visibility into destructive behavior. This exceeds the minimum file-system privileges required for batch generation. The Skill only needs to create and rename artifacts generated during the current run; it does not need to delete arbitrary pre-existing matching files. ### Attack Path 1. A user supplies an existing directory through `--output`. 2. That directory contains two or more valuable files named in the `video-*.mp4` or `video-*.jpg` pattern. 3. `cleanupExtraVideoFiles()` enumerates all matching files ...[truncated 925 chars]
Remediation
View remediation

T05 · Unauthorized Access and Privilege Escalation

Error
Location
SKILL.md:315
Finding

Authenticated browser profile exposed through Chrome remote debugging

Content
View full analysis
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
scripts/batch-generate.js:39
Finding

Unpinned external Skill is executed with the full inherited environment

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Note
Location
references/sucuang_api.md:166
Finding

Cloud access-key identifier and storage metadata committed to documentation

Content
View full analysis
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 (38)

Tp4

High
Category
MCP Tool Poisoning
Confidence
94% confidence
Finding

声明描述的是一个覆盖前期创作、图像/视频生成、自动化生产到后期审片的完整AI短片制作技能;而代码仅实现后期合成链路中的一部分,且依赖已存在的视频素材与storyboard数据。它没有调用任何所宣称的视频生成服务/API,也没有浏览器自动化、批量网页控制、角色图生成或脚本创作逻辑。虽然声明中提到旁白、字幕、BGM等内容,代码与这部分相符,但整体主能力范围明显比声明窄得多,属于描述与实际行为不一致。

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill tells the agent to force-kill Chrome and relaunch it with remote debugging enabled while reusing the user's default browser profile. This can disrupt active user sessions, expose cookies and authenticated state to automation, and materially increases the risk of account misuse or privacy compromise if the debugging port or profile data is accessed by unintended processes.

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

md
- 文件:`scripts/batch-generate.js`、`scripts/retry-until-complete.js`、`scripts/compose-video.py`

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- 文件:`scripts/batch-generate.js`、`scripts/retry-until-complete.js`、`scripts/compose-video.py`

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- 文件:`scripts/batch-generate.js`、`scripts/retry-until-complete.js`、`scripts/compose-video.py`

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- 文件:`scripts/batch-generate.js`、`scripts/retry-until-complete.js`、`scripts/compose-video.py`

Missing User Warnings

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

A live-looking cloud SecretId is exposed in plaintext with no warning or protection guidance. Publicly exposing credential material in documentation is dangerous because it can enable account targeting and may be one half of a usable credential pair, especially if other secrets are leaked elsewhere.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
92% confidence
Finding

The skill instructs use of shell commands, file operations, environment manipulation, and browser automation, but it declares no explicit tool scope or permissions boundary. That makes the operational surface ambiguous and increases the chance an agent executes high-risk actions without informed user consent or platform-level restriction.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The trigger phrases are broad enough to capture ordinary requests for general video help, causing the skill to activate in situations where the user did not intend to invoke browser automation, shell commands, or external API workflows. In this skill, that matters because the documented behavior includes local system manipulation and third-party service interaction.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
76% confidence
Finding

The skill routes prompts and content to an external API service for video generation. External transmission is expected in this context, but it is still security-relevant because user-provided scripts, prompts, and possibly sensitive creative content may be sent to a third party without any accompanying data-handling warning or minimization guidance.

Content

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

md
**适用:** 快速出片、试验性内容、预算敏感项目

**API平台:** https://api.wuyinkeji.com
**注册链接:** https://api.wuyinkeji.com/user/register?cps=UXPjoCgN

**价格:** ¥0.05/秒(按生成视频时长计费)

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The storyboard specification requires English prompts but fixes narration to '中文旁白', and later the composition example hard-codes a Chinese voice ('zh-CN-YunjianNeural'). This imposes a language/locale choice in the skill instructions without presenting user opt-in, alternatives, or a documented reason that the skill is limited to Chinese-only output.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The automation flow explicitly downloads generated content using authenticated browser cookies, but the skill does not warn the user that session credentials are being reused programmatically. That omission hides a meaningful trust boundary: any automation with cookie-backed fetch capability can act within the user's logged-in context and potentially access or export account-scoped data.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The document is written entirely in Chinese and immediately instructs the operator to confirm project information in Chinese, with no indication that other languages are supported or that the Chinese-only workflow is intentional. Under the stated policy, forcing a specific language without user opt-in is a natural-language policy violation.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

md
## 平台信息

- **平台地址**: https://api.wuyinkeji.com
- **注册链接**: https://api.wuyinkeji.com/user/register?cps=UXPjoCgN
- **文档中心**: https://api.wuyinkeji.com/doc
- **API Key获取**: 注册登录后进入控制台获取

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

md
## 平台信息

- **平台地址**: https://api.wuyinkeji.com
- **注册链接**: https://api.wuyinkeji.com/user/register?cps=UXPjoCgN
- **文档中心**: https://api.wuyinkeji.com/doc
- **API Key获取**: 注册登录后进入控制台获取

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · references/sucuang_api.md (reported line 6)May include surrounding context.

md
## 平台信息

- **平台地址**: https://api.wuyinkeji.com
- **注册链接**: https://api.wuyinkeji.com/user/register?cps=UXPjoCgN
- **文档中心**: https://api.wuyinkeji.com/doc
- **API Key获取**: 注册登录后进入控制台获取

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · references/sucuang_api.md (reported line 7)May include surrounding context.

md
## 平台信息

- **平台地址**: https://api.wuyinkeji.com
- **注册链接**: https://api.wuyinkeji.com/user/register?cps=UXPjoCgN
- **文档中心**: https://api.wuyinkeji.com/doc
- **API Key获取**: 注册登录后进入控制台获取

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · references/sucuang_api.md (reported line 23)May include surrounding context.

md
## 平台信息

- **平台地址**: https://api.wuyinkeji.com
- **注册链接**: https://api.wuyinkeji.com/user/register?cps=UXPjoCgN
- **文档中心**: https://api.wuyinkeji.com/doc
- **API Key获取**: 注册登录后进入控制台获取

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · references/sucuang_api.md (reported line 197)May include surrounding context.

md
## 平台信息

- **平台地址**: https://api.wuyinkeji.com
- **注册链接**: https://api.wuyinkeji.com/user/register?cps=UXPjoCgN
- **文档中心**: https://api.wuyinkeji.com/doc
- **API Key获取**: 注册登录后进入控制台获取

External Transmission

Medium
Category
Data Exfiltration
Confidence
70% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · references/sucuang_api.md (reported line 59)May include surrounding context.

md
def submit_shot(shot):
    # 提交生成任务
    resp = requests.post(url, headers=HEADERS, json=params)
    task_id = resp.json()["data"]["id"]
    # 轮询直到完成
    while True:

External Transmission

Medium
Category
Data Exfiltration
Confidence
70% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · references/sucuang_api.md (reported line 123)May include surrounding context.

md
def generate_tts(text, voice_id, output_path):
    payload = {"text": text, "voice_id": voice_id, "speed": 1.0}
    resp = requests.post(f"{BASE}/api/async/audio_tts", headers=HEADERS, json=payload)
    task_id = resp.json()["data"]["id"]
    
    while True:

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The document instructs users to provide publicly accessible audio/video URLs and recommends cloud object storage, but it does not warn that uploaded media may contain sensitive personal or proprietary content. Because this behavior affects user data exposure and privacy, the omission of a user warning is material.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The documentation includes what appears to be a real Tencent Cloud SecretId together with a specific bucket name and region. Even though SecretId alone is not always sufficient without the SecretKey, publishing cloud account identifiers and storage details materially aids credential abuse, infrastructure targeting, phishing, and unauthorized access attempts.

Content

No source excerpt is available for this finding.

Cloud Storage Exfiltration

Medium
Category
Data Exfiltration
Confidence
55% confidence
Finding

Data is uploaded to cloud storage (S3 / GCS / Azure Blob). This may be a legitimate backup or exfiltration to an external bucket. Manual review is recommended.

Content

Scanner excerpt · references/sucuang_api.md (reported line 180)May include surrounding context.

md
config = CosConfig(Region="ap-guangzhou", SecretId=SECRET_ID, SecretKey=SECRET_KEY)
client = CosS3Client(config)

response = client.upload_file(
    Bucket="video-1304671784",
    LocalFilePath="local_file.mp4",
    Key="remote_path/file.mp4"

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The module docstring states the tool generates Chinese narration and subtitles, and the example/default configuration is explicitly Chinese-oriented. This is a natural-language locale constraint presented as the expected behavior without any documented user choice or opt-in, which can violate language/locale policy requirements.

Content

No source excerpt is available for this finding.