Back to skill

Security audit

guaikei-v2t

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly does what it claims, but it can fetch arbitrary URLs and upload the resulting content to a server-chosen HTTPS destination broader than its documentation discloses.

Review before installing. Only use this skill with media you are willing to send to a third-party cloud service, avoid attacker-supplied or internal/private URLs, and prefer local transcription for confidential content until URL allowlisting, private-network blocking, download limits, and upload-host disclosure are added.

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

T09 · Insecure Skill Coding Practices

Error
Location
scripts/utils/validator.js:3
Finding

Unrestricted URL Fetching Enables Internal Resource Access and Exfiltration

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

T09 · Insecure Skill Coding Practices

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

Missing Download Size and Timeout Limits Permit Resource Exhaustion

Content
View full analysis
= totalSize) ) { this.emit("skip", { totalSize: this.__total, fileName: this.__fileName, filePath: this.__filePath, downloadedSize: downloadedSize, }); this.__setState(this.__states.SKIPPED); return resolve(true); } } this.__fileStream = fs.createWriteStream(this.__filePath, {}); this.emit("download", { fileName: this. ...[truncated 2679 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/utils/upload.js:11
Finding

Server-Controlled Upload Destination Is Not Restricted to Trusted Storage Hosts

Content
View full analysis
{ const fileStats = fs.statSync(filename); const totalSize = fileStats.size; let uploadedSize = 0; let settled = false; const fileStream = fs.createReadStream(filename); // 复制预签名 headers,并补充 OSS PUT 必需字段 const uploadHeaders = Object.assign({}, headers); // 关键修复:明确 Content-Length,否则 Node 对流式 body 默认使用 chunked // Transfer-Encoding,阿里云 OSS 预签名 PUT 通常会拒绝而返回 400/403 uploadHeaders["Content-Length"] = String(totalSize); if (!uploadHeaders["Content-Type"]) { uploadHeaders["Content-Type"] = "application/octet-stream"; } const options = { host: url.hostname, path: url.pathname + url.search, method: "PUT", headers: uploadHeaders, }; const req = https.request( { ...options, timeout: constants.REQUEST_TIMEOUT } ...[truncated 2296 chars]
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • 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 (24)

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

A skill that mainly performs token checks, pause controls, or promotional messaging while claiming to transcribe and analyze video misleads users and orchestration systems about both utility and risk. That can cause improper routing of user data, wasted trust, and unnecessary exposure of secrets such as API tokens without delivering the declared function.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

A skill that mainly performs token checks, pause controls, or promotional messaging while claiming to transcribe and analyze video misleads users and orchestration systems about both utility and risk. That can cause improper routing of user data, wasted trust, and unnecessary exposure of secrets such as API tokens without delivering the declared function.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

A skill that mainly performs token checks, pause controls, or promotional messaging while claiming to transcribe and analyze video misleads users and orchestration systems about both utility and risk. That can cause improper routing of user data, wasted trust, and unnecessary exposure of secrets such as API tokens without delivering the declared function.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

A skill that mainly performs token checks, pause controls, or promotional messaging while claiming to transcribe and analyze video misleads users and orchestration systems about both utility and risk. That can cause improper routing of user data, wasted trust, and unnecessary exposure of secrets such as API tokens without delivering the declared function.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
96% confidence
Finding

The downloader copies URL-embedded username/password into the HTTP auth field, causing credentials present in a supplied URL to be transmitted automatically. In this skill context, URLs may come from user-provided third-party video links, so an attacker could induce authenticated requests to internal or external services, leaking secrets or accessing resources with unintended credentials.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The README defines broad natural-language-to-command conversion rules such as treating any detected link or file path as a --file argument and any analysis request as --prompt, without clear trigger boundaries, confirmation steps, or input validation guidance. In an agent setting, this can cause unintended execution against attacker-supplied URLs, reuse of prior task IDs, or overly permissive prompt forwarding, which may lead to unintended data processing or SSRF-like fetch behavior depending on the implementation.

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

The skill declares access to the sensitive environment variable GUAIKEI_API_TOKEN in metadata but does not define explicit tool scope such as permissions or allowed-tools. That weakens least-privilege guarantees and makes it harder for the host to constrain what the skill may access, especially given the skill also claims networked cloud processing of user-supplied media.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The trigger examples are broad enough to overlap with common summarization or content-analysis requests, which can cause an agent to invoke this external, token-bearing, networked skill when a safer local capability would suffice. In context, that increases the chance of unnecessary third-party sharing of user-provided links, files, or content.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The guidance tells the agent to prioritize this skill for wide intent categories such as summarization, rewriting, and analysis, without requiring strong evidence that the input is actually a supported video task. That expands the skill's effective authority and can route unrelated user content to a third-party service under an overly permissive invocation policy.

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

This file's docstrings, validation errors, and operation labels are entirely in Chinese, which indicates a fixed language choice in user-visible text. Under the policy, forcing a specific language without user opt-in or documented justification is a natural-language policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This utility emits all user-facing strings in Chinese, including error messages and help text. That hard-codes a single language for all users and matches the policy category for language/locale constraints without an explicit opt-in or documented region-specific justification.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

This JavaScript file contains natural-language comments and user-facing log/error strings only in Chinese, with no indication that the skill is region-specific or that users can opt into the locale. Under the policy, forcing a specific language without user choice or justification is a natural-language policy violation.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
85% confidence
Finding

This utility performs outbound HTTP/HTTPS requests and follows redirects, potentially sending request headers and URL-derived data to multiple remote endpoints, but the code does not provide any visible warning or explanatory comment about that behavior. Because network transmission is safety-relevant, especially when headers or credentials may be included, some disclosure is expected.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

This code creates and appends to files on disk, and elsewhere in the class it also deletes files on stop/failure, but there is no confirmation prompt, print/log statement, or explanatory comment/docstring warning users about these filesystem side effects. For a reusable downloader utility, these are safety-relevant operations that can affect user data and should be disclosed clearly.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

Multiple thrown error messages are written in Chinese, which forces a specific language for user-visible output. The file does not offer localization, user language selection, or any justification that the skill is intentionally limited to a Chinese-speaking or region-specific audience.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

Authentication, timeout, and network failure messages are user-facing and all hard-coded in Chinese. This enforces a specific language in operational error handling without giving users a choice or documenting a locale restriction.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

This code sends arbitrary JSON data over HTTPS and includes a TOKEN header, which means user or system data may be transmitted to a remote service. Within this file there is no confirmation prompt, user-facing notice, or explicit warning comment/docstring describing that outbound network transmission and credential use occur.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

This code emits all warning and informational messages exclusively in Chinese, with no indication that the skill is region-specific or that the user can choose a different language. That creates a natural-language policy concern because the skill imposes a specific language on users without opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

The entire skill documentation and usage guidance are presented only in Chinese, and no language or locale choice is offered to users. This can constitute a language policy violation when users are not given an explicit opt-in or alternative locale.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

The natural-language comment uses Chinese only ("下载文件") with no indication that the skill is region-specific or that users can choose their preferred language. This can violate a language/locale policy when skills are expected to be language-neutral or offer opt-in.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
74% confidence
Finding

The error message explicitly references GUAIKEI_API_TOKEN, indicating the skill depends on a sensitive token credential. This file lacks any nearby user-facing warning or explanatory comment that the skill uses such a credential to authenticate outbound requests.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

The banner string is hard-coded in Chinese, which indicates a fixed language experience rather than offering the user a locale or language choice. The policy explicitly calls for flagging language or locale constraints when they are forced without user opt-in or documented justification.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.