Back to skill

Security audit

guaikei跨平台视频转文字

Security checks for vulnerabilities and agentic risk

Overview

The cloud transcription service is disclosed, but inaccurate network assurances and a cache bug that can upload the wrong video warrant review.

Review before using sensitive recordings. Ask the publisher to correct the network disclosure and prevent filename collisions from selecting an earlier video. Expect paid cloud processing, server-selected upload storage, and local cached copies; confirm the provider's retention terms before sharing confidential material.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Output HandlingUnvalidated Output Injection, Cross-Context Output, Unbounded Output
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (6)

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
86% confidence
Finding

单纯的 token 校验可以是正常的支持性实现细节,且辅助模块不包含视频处理本身并不构成不匹配。但此代码还将技能可用性与未声明的第三方私有 TOKEN 绑定,并在校验失败时输出营销和获取渠道信息,超出了所描述的视频转写与文案生成用途。该片段仅做格式检查和日志输出,没有实际验证 token 的有效性,也没有展示网络请求、数据外传或付费交易。

Content

No source excerpt is available for this finding.

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

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

md
4. 同时传入文件路径与任务ID,优先执行 `--id`,忽略 `--file`
5. 无自定义 prompt 时,默认完整转录视频全部文字

| 用户自然语言指令                                         | 自动生成命令                                                                                                |
| -------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| 视频提取 https://example.com/video.mp4 中的文字          | `node scripts/video2text/index.js --file "https://example.com/video.mp4"`                                   |
| 把本地 /path/to/your/video.mp4 改成小红书风格的文案      | `node scripts/video2text/index.js --file "/path/to/your/video.mp4" --prompt "改写成小红书风格的文案"`       |

Skill declares no tool scope ('permissions' or 'allowed-tools') but code capabilities were detected: env.

Medium
Category
MCP Least Privilege
Confidence
70% confidence
Finding

Without declared permissions the skill's intent is opaque and cannot be validated.

Content

No source excerpt is available for this finding.

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

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

md
当用户用自然语言下达指令时,按以下映射生成命令,保证识别与执行一致:

| 用户自然语言指令                                     | 生成的命令                                                                                                  |
| ---------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| 提取 https://example.com/video.mp4 里的文字          | `node scripts/video2text/index.js --file "https://example.com/video.mp4"`                                   |
| 总结这个视频的核心观点 https://example.com/video.mp4 | `node scripts/video2text/index.js --file "https://example.com/video.mp4" --prompt "总结这个视频的核心观点"` |

Stopping or failing a download deletes the destination file by default without disclosing the deletion.

Medium
Category
Output Handling
Confidence
90% confidence
Finding

Both removeOnStop and removeOnFail default to true (L0044–L0045), causing stop() and failure cleanup (L1053) to unlink the destination file. No confirmation, deletion-specific user-facing message, or explanatory comment documents this destructive behavior; this can also affect an existing file supplied to resumeFromFile().

Content

No source excerpt is available for this finding.

User-facing token status and configuration messages are fixed to Chinese without a language choice or documented locale justification.

Low
Category
Output Handling
Confidence
90% confidence
Finding

Both the invalid-token guidance and valid-token status message are printed exclusively in Chinese. The file provides no user opt-in, locale selection, or justification for imposing this language on users.

Content

No source excerpt is available for this finding.