Back to skill

Security audit

guaikei-video-to-text

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly matches its video-to-text purpose, but its URL handling can fetch and upload arbitrary reachable web resources without strong limits, so it needs review before installation.

Install only if you are comfortable sending selected videos, prompts, and a GUAIKEI_API_TOKEN-backed request to an external service. Avoid using untrusted URLs or running this on machines with access to internal network services until the skill restricts private-address URLs, validates redirects, enforces download size/time limits, and clearly discloses upload destinations.

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
scripts/utils/validator.js:3
Finding

Unrestricted URL Fetching Enables Server-Side Request Forgery and Data Exfiltration

Content
View full analysis
this.__opts.maxRedirects) { const err = new Error("Too many redirects"); this.__setState(this.__states.F ...[truncated 3637 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/utils/download.js:31
Finding

Unbounded Remote Downloads Permit Disk, Bandwidth, and Execution-Time Exhaustion

Content
View full analysis
{ this.__response = response; if (!this.__isResumed) { this.__total = parseInt(response.headers["content-length"]) || null; this.__resetStats(); } if (this.__isResumed && response.statusCode === 200) { this.__isResumed = false; this.__total = parseInt(response.headers["content-length"]) || null; ``` ```js // scripts/utils/download.js:525-548 if (!this.__isResumed) { const _fileName = this.__getFileNameFromHeaders(response.headers); this.__filePath = this.__getFilePath(_fileName); this.__fileName = this.__filePath.split(path.sep).pop(); if (fs.existsSync(this.__filePath)) { const downloadedSize = this.__getFilesizeInBytes(this.__filePath); const totalSize = this.__total ? this.__total : 0; if ( typeof this.__opts.override === "object" && this.__opts.override.skip && (this.__opts.override.skipSmaller || downloadedSize >= totalSize) ) { this.emit("skip", { totalSize: this.__total, fileName: this.__fileName, filePath: this.__filePath, downloadedSize: downloadedSize, }); ...[truncated 3056 chars]
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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
Findings (22)

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The finding describes a skill marketed as speech-to-text and text transformation, but lacking any actual transcription, subtitle extraction, summarization, rewriting, or translation logic. In context, the skill is especially risky because users may supply local files, URLs, and API credentials to a tool whose true behavior is materially different from its presentation.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The finding describes a skill marketed as speech-to-text and text transformation, but lacking any actual transcription, subtitle extraction, summarization, rewriting, or translation logic. In context, the skill is especially risky because users may supply local files, URLs, and API credentials to a tool whose true behavior is materially different from its presentation.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The finding describes a skill marketed as speech-to-text and text transformation, but lacking any actual transcription, subtitle extraction, summarization, rewriting, or translation logic. In context, the skill is especially risky because users may supply local files, URLs, and API credentials to a tool whose true behavior is materially different from its presentation.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The finding describes a skill marketed as speech-to-text and text transformation, but lacking any actual transcription, subtitle extraction, summarization, rewriting, or translation logic. In context, the skill is especially risky because users may supply local files, URLs, and API credentials to a tool whose true behavior is materially different from its presentation.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The finding describes a skill marketed as speech-to-text and text transformation, but lacking any actual transcription, subtitle extraction, summarization, rewriting, or translation logic. In context, the skill is especially risky because users may supply local files, URLs, and API credentials to a tool whose true behavior is materially different from its presentation.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The finding describes a skill marketed as speech-to-text and text transformation, but lacking any actual transcription, subtitle extraction, summarization, rewriting, or translation logic. In context, the skill is especially risky because users may supply local files, URLs, and API credentials to a tool whose true behavior is materially different from its presentation.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The finding describes a skill marketed as speech-to-text and text transformation, but lacking any actual transcription, subtitle extraction, summarization, rewriting, or translation logic. In context, the skill is especially risky because users may supply local files, URLs, and API credentials to a tool whose true behavior is materially different from its presentation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
83% confidence
Finding

The README is entirely written in Chinese and the examples and prompt guidance assume Chinese-language use, but there is no statement offering an alternate language or letting users opt into a locale. This can violate language/locale policy when a skill effectively requires one language by default without user choice.

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 "改写成小红书风格的文案"`       |

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
84% confidence
Finding

The skill declares access to an environment secret (GUAIKEI_API_TOKEN) but does not define an explicit tool/permission scope such as allowed tools or network boundaries in an enforceable way. In an agent setting, missing explicit scope weakens least-privilege guarantees and can let a skill gain broader execution context than reviewers or users expect.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

Broad trigger phrases such as common requests for text extraction or drafting can cause the agent to invoke this skill in situations the user did not specifically intend. Because this skill claims access to local files, URLs, and an external API, accidental invocation increases the chance of unintended data transfer or secret use.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The invocation guidance prioritizes this skill for very broad categories like summaries, content analysis, and drafting, which can overshadow safer or more appropriate tools. In a skill that may upload media or call external APIs, overbroad routing increases the risk of unnecessary disclosure of user content and incorrect autonomous execution.

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 120)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 "总结这个视频的核心观点"` |

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The file's docstrings, validation errors, and operation labels are all written in Chinese, which indicates a fixed language choice in user-visible and developer-facing text. Under the stated policy, forcing a specific language without opt-in is a natural-language policy violation unless the locale restriction is explicitly justified, which is not present here.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This JavaScript file contains natural-language comments and user-facing messages entirely in Chinese, including thrown errors and generated help text. Because these strings define the CLI's user-visible language without any opt-in, fallback, or documented region-specific justification, they create a language/locale policy concern under the natural-language policy rule.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

This code constructs and sends outbound HTTPS POST requests containing arbitrary JSON data and a TOKEN header. While the network behavior is clear in code, there is no confirmation prompt or user-facing warning in this file explaining that user/system data and credentials may be transmitted to a remote service.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The skill emits all user-facing status and warning text in Chinese, including warnings and recovery instructions, with no indication that users can choose another language. This is a natural-language locale policy issue because the file hard-codes a specific language for operational messaging without opt-in or documented justification.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
79% confidence
Finding

The description advertises translating content into English as a built-in capability, but does not mention preserving the user's language preference or requiring explicit user request for language changes. This can conflict with language/locale policy expectations when a skill changes output language without opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

This JavaScript file contains natural-language comments and runtime messages exclusively in Chinese, including user-facing status and error text. The policy only permits fixed language behavior when the skill offers a language choice or clearly documents a justified locale constraint, which is not evident here.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

This JavaScript file contains a Chinese-only doc comment and multiple Chinese user-facing status/error strings, which imposes a specific language without any opt-in or fallback. The policy explicitly flags language or locale constraints when the skill does not offer user choice or clearly document a justified region-specific requirement.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

The code presents user-visible error messages entirely in Chinese, including credential and support guidance, without offering any language selection or documenting a justified locale restriction. This can violate language/locale policy when the skill is not explicitly limited to Chinese-speaking users.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

The banner text is fixed to Chinese ("视频文案智能提取助手") and the file provides no indication that users can opt into another language or locale. Under the policy rule for natural-language violations, forcing a specific language without user choice is a reportable issue.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.