Back to skill

Security audit

Guaikei Douyin Quick Fetch Public

Security checks for vulnerabilities and agentic risk

Overview

The skill largely matches its public Douyin data-retrieval purpose, but it needs review because token handling and runtime support messages do not match its stated safeguards.

Install only if you are comfortable sending Douyin search terms, creator/video URLs, requested limits, and GUAIKEI_API_TOKEN to www.guaikei.com, and with returned public data being saved under local logs. Review or request fixes for token-in-query-string authentication, the runtime contact/promotional token-error messages, and the overly broad trigger rule before using it in sensitive research workflows.

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

Warning
Location
src/utils/request.js:94
Finding

API Token Exposed in URL Query Strings

Content
View full analysis
{ const res = await getJson("/api/douyin/hot-search", { _: Date.now(), token: token, }); return res.data; ``` `src/utils/request.js:94-120`: ```js async function postJson(path, params, data) { if (!path || typeof path !== "string") { throw new SkillError("PATH_INVALID", "path 必须是非空字符串"); } if (!params || typeof params !== "object") { throw new SkillError("PARAM_INVALID", "params 必须是对象"); } if (!data || typeof data !== "object") { throw new SkillError("DATA_INVALID", "data 必须是对象"); } params.skill_name = skillName(); const fullP ...[truncated 3183 chars]
Remediation
View remediation

other

Note
Location
src/utils/token.js:23
Finding

Runtime Promotion and Personal Contact Disclosure Contradict the Declared Token Policy

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

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The skill description emphasizes public-data retrieval, but it also declares automatic writes to a local logs/ directory. Undisclosed or underemphasized local persistence can create privacy and retention risks, especially if query parameters, URLs, or returned data contain sensitive business research terms or token-adjacent diagnostic data.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill description emphasizes public-data retrieval, but it also declares automatic writes to a local logs/ directory. Undisclosed or underemphasized local persistence can create privacy and retention risks, especially if query parameters, URLs, or returned data contain sensitive business research terms or token-adjacent diagnostic data.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill description emphasizes public-data retrieval, but it also declares automatic writes to a local logs/ directory. Undisclosed or underemphasized local persistence can create privacy and retention risks, especially if query parameters, URLs, or returned data contain sensitive business research terms or token-adjacent diagnostic data.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
93% confidence
Finding

The skill explicitly relies on the environment variable GUAIKEI_API_TOKEN, but the manifest does not declare tool scope or permissions for environment access. Undeclared secret access weakens least-privilege guarantees and makes it harder for reviewers and runtime policy to understand what sensitive resources the skill needs.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The trigger rule says the skill should activate even when users mention generic short-video research without explicitly naming Douyin. Overbroad triggering can cause the agent to invoke this skill in unintended contexts, leading to unnecessary collection, wrong-platform handling, or disclosure of user queries to an external API without sufficiently clear user intent.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The line "纯中文界面" imposes a specific language/locale requirement in natural language. The file does not offer user opt-in, language selection, or a clearly justified compliance reason for restricting the interface to Chinese only.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The schema explicitly documents play_addr as both a playback address and a video download address, which conflicts with the skill's stated scope that it does not support downloading videos. Even though this file is only a schema, exposing and normalizing a download field can enable downstream components or users to use the skill for prohibited media retrieval, creating policy and misuse risk.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The README states that scraped data is automatically exported to local JSON log files, but the warning about persistence appears later and is not prominent. Because this skill collects public but potentially sensitive profiling and comment data, silent retention can expose collected datasets to unintended local users, backups, or downstream sharing.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

This file contains user-facing natural-language strings exclusively in Chinese, including status and error messages, but does not offer any language selection or indicate that the skill is intentionally limited to a Chinese-speaking context. That can violate language/locale policy when users are not given an opt-in choice.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The CLI writes full search output to a local JSON file using a filename derived in part from user input, but the user is not explicitly warned that query terms and returned public-data results will be persisted on disk. In this skill’s context, searches may involve sensitive research topics, competitor monitoring, or public-opinion tracking, so silent local retention can create privacy, data-handling, and multi-user workstation exposure risks even if the source data is publicly accessible.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The authentication error string is written only in Chinese and includes no language selection or fallback, which can violate language/locale policy when the skill is not explicitly documented as Chinese-only. The file contains several Chinese-only user-facing messages, but this line is a clear end-user instruction path during failure handling.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

This JSON schema contains user-facing natural-language fields such as title and description exclusively in Chinese (for example at L04-L05, L12, and L16). Because the file does not indicate that the skill is region-specific or provide any language selection, it may impose a specific language/locale without user opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

The schema title and field descriptions are written entirely in Chinese, which imposes a specific language in the skill's natural-language metadata. There is no indication that the skill is region-specific or that users can opt into this locale, so it can violate the language/locale policy for broadly used skills.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
85% confidence
Finding

The schema's natural-language fields such as title and description are written entirely in Chinese, which can impose a specific language on downstream users or tools without any opt-in or documented locale constraint. Under the language/locale policy rule, this is a potential policy violation unless the file clearly states it is intentionally region-specific.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
97% confidence
Finding

The human-facing title and descriptions are written entirely in Chinese, with no indication that the skill is region-specific or that users can choose another language. This can violate language/locale policy when a skill implicitly forces one language without documented opt-in or justification.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

The schema's title and top-level description are written only in Chinese, and all field descriptions continue that pattern. For a general-purpose skill artifact, this imposes a specific language without any visible opt-in or documentation that the skill is intentionally limited to Chinese-speaking users or a China-specific context.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
86% confidence
Finding

This manifest-style JSON schema uses Chinese-only natural-language title and description text, and the field descriptions throughout the schema are also Chinese-only. Under the stated policy, forcing a specific language without user opt-in or documented locale justification is a natural-language policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

This JSON schema contains natural-language titles and descriptions exclusively in Chinese, such as the title and multiple property descriptions. Under the language/locale policy, forcing a specific language without user opt-in or justification can be a policy violation, and this file does not document any opt-in or region-specific limitation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
63% confidence
Finding

All natural-language instructions, examples, and intent mappings are presented only in Chinese, and the README does not state that the skill is China-specific or provide user opt-in for language/locale. This can amount to a locale/language policy issue when a skill implicitly forces one language without documenting the constraint.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The changelog and skill-facing text are entirely in Chinese, and there is no indication that users can opt into this language or that the skill is restricted to a Chinese-language audience for a documented reason. This can violate language/locale policy when a skill effectively forces one language without user choice.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
94% confidence
Finding

This markdown documentation forces a specific language/locale for all users, and there is no indication that the skill is region-specific or that users can opt into Chinese-language instructions. Under the policy, natural-language content should not impose a language without user choice or a clear justification.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The file’s natural-language comments and parameter documentation are entirely in Chinese, which can indicate a language-specific constraint without any user opt-in or documented locale justification. Under the policy for natural-language violations, forcing a specific language without choice should be flagged when no opt-in or regional rationale is provided.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

This code file includes natural-language comments and API descriptions entirely in Chinese, which imposes a specific language on readers without any indication of user choice or documented locale scope. Under the stated policy, forcing a specific language without opt-in is a natural-language policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

This file contains natural-language comments exclusively in Chinese, including the top-level description and constant annotations. Under the policy rule for language/locale, forcing a specific language without opt-in or documented justification can be a violation, and no such justification appears in this file.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
85% confidence
Finding

The code reads GUAIKEI_API_TOKEN from process.env and then uses it in API requests via createPostTask and getPostTask. Although the script logs progress, it does not clearly disclose to the user that credentials are being consumed and that the provided URL/identifier will be transmitted to a remote service.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.