Back to skill

Security audit

guaikei-douyin-trending-to-rank-report

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly matches its Douyin research purpose, but it needs review because token handling, broad trigger rules, and runtime promotional error messages create avoidable trust and privacy risks.

Review before installing. Use it only when you intentionally want Douyin public-data collection, keep GUAIKEI_API_TOKEN low-privilege and rotatable, and treat generated logs as retained research data. Avoid invoking it for generic research unless Douyin is explicitly in scope, and be aware that authentication failures may display promotional contact information despite the documentation saying they will not.

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/api/search.js:59
Finding

API credential exposed in URL query parameters

Content
View full analysis
` in the URL. This expands credential exposure beyond the application componen ...[truncated 1527 chars]
Remediation
View remediation

other

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

Runtime authentication errors inject promotional contact information contrary to the declared policy

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • 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
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (47)

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill claims '不写入文件系统(日志除外)' and later states that output files are automatically saved to logs/, while also omitting explicit permission declarations for filesystem writes. Undeclared local writes can create privacy and data-retention risks, especially if fetched content or query parameters are persisted unexpectedly on shared systems.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill claims '不写入文件系统(日志除外)' and later states that output files are automatically saved to logs/, while also omitting explicit permission declarations for filesystem writes. Undeclared local writes can create privacy and data-retention risks, especially if fetched content or query parameters are persisted unexpectedly on shared systems.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The skill claims '不写入文件系统(日志除外)' and later states that output files are automatically saved to logs/, while also omitting explicit permission declarations for filesystem writes. Undeclared local writes can create privacy and data-retention risks, especially if fetched content or query parameters are persisted unexpectedly on shared systems.

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 an environment variable (GUAIKEI_API_TOKEN) and network/API access, but it does not declare an explicit tool scope such as permissions or allowed-tools. This creates a governance gap: an orchestrator or reviewer cannot reliably constrain or audit the skill’s access to secrets and external communication, increasing the chance of unintended secret exposure or overbroad execution.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The trigger guidance is intentionally broad, including generic research scenarios where the user may not have explicitly requested Douyin. Overbroad activation can cause the agent to invoke external-data collection in contexts the user did not intend, leading to unnecessary network access, token use, logging, and possible collection of third-party data.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

Common phrases like '热点', '搜索', or '作品' are too generic and may match many unrelated requests. This raises the risk of accidental invocation, causing unintended API calls, consumption of credentials/quotas, and unnecessary persistence of results or logs for tasks outside the skill’s intended scope.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The schema title and nearly all description strings are written only in Chinese, which imposes a specific language/locale on consumers of this skill file. The file does not indicate that the skill is intentionally China-specific or provide any opt-in or alternative language support, which creates a natural-language locale policy concern.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The manifest says the skill is not suitable for '下载去水印', indicating download-related functionality is outside the stated scope. This schema explicitly defines play_addr as both a playback address and a '视频下载地址', which describes an output supporting video download behavior beyond the declared intent.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
86% confidence
Finding

The README repeatedly states that the skill automatically generates and stores JSON logs/results locally, but it does not clearly warn that those files may contain scraped public data, queried keywords, video/account identifiers, and comment content. In a data-collection skill, silent persistence increases privacy and data-handling risk because users may unintentionally retain sensitive research targets or regulated content on disk.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The changelog and skill description text are entirely in Chinese, which can amount to forcing a specific language on users without opt-in. The file does not indicate that the skill is region-specific or that alternative language support is available, so this appears to conflict with the language/locale policy criteria.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
86% confidence
Finding

This code sends the token parameter as part of outbound API requests when creating a comment task, which is a sensitive credential-handling operation. While the JSDoc documents parameters and errors, it does not warn that the token is transmitted to an external API, and there is no confirmation, logging, or other user disclosure in this file.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
84% confidence
Finding

This function performs an outbound HTTP GET request containing token, url, and limit, which transmits user-provided or system data to an API endpoint. The file includes no warning or disclosure that these values are sent over the network, beyond basic parameter documentation.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

This code persists the fetched comment data to disk via log.taskWrite(...), which is a file-write operation covered by the missing-warning rule for code files. Although the CLI logs progress for fetching comments, there is no visible disclosure near the write, confirmation prompt, or comment/docstring explaining that results will be saved to a local file.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

This code persists the full task output to disk via log.taskWrite, which is a file-write operation covered by the missing-warning rule for code files. Although the tool logs progress messages, there is no clear user-facing disclosure here that results will be saved locally, and no confirmation prompt or explanatory comment/docstring near the write.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

Search results are silently written to a local JSON file after successful execution, with no user-facing warning at runtime beyond normal console output. Because this skill handles search terms, potentially sensitive competitive research, and scraped platform data, undisclosed persistence increases privacy and confidentiality risk, especially on shared machines or environments with automated log collection.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The manifest describes a skill for searching Douyin keywords, fetching creator works, scraping comments, and querying trending rankings. This helper instead persists arbitrary string content to local disk under a logs directory, which is a broader behavior than the user-facing description suggests and is not necessary to the described read-oriented data acquisition purpose.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The file contains multiple user-facing error strings only in Chinese, including the authentication guidance message and request failure text. This forces a specific language/locale in natural-language output without offering user choice or documenting a justified locale restriction.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

This code emits user-facing status and warning messages only in Chinese, including the warning about token configuration and the informational message about using a private token. That enforces a specific language/locale for user interaction without any visible opt-in or fallback, which matches the language policy violation criteria.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

This JavaScript file contains natural-language comments and user-facing error/output strings exclusively in Chinese, such as the validation errors and formatted result labels. Per the policy, forcing a specific language without offering the user a language or locale choice is a natural-language policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
94% confidence
Finding

The statement "纯中文界面" imposes a language constraint in natural language and does not offer the user a locale or language choice. Under the policy, forcing a specific language without opt-in is a language/locale policy violation unless clearly justified as region-specific.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

The title and descriptions in this schema are entirely in Chinese, which can impose a language-specific interaction requirement without any visible opt-in or documented locale constraint. The policy calls for flagging language or locale restrictions when the skill forces a specific language without user choice.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

The schema title and description are written only in Chinese, which imposes a specific language in natural-language metadata without any opt-in or documented locale constraint. Under the policy, locale-specific language is acceptable only when explicitly justified or offered as a choice.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
91% confidence
Finding

This manifest-type file contains multiple natural-language strings such as the title and field descriptions exclusively in Chinese. Under the policy for language/locale, forcing a specific language without opt-in or documented 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
92% confidence
Finding

The title and descriptions are written only in Chinese, which can impose a fixed language/locale on users without any opt-in or documented justification. Under the policy, locale constraints should either offer user choice or be clearly documented as region-specific.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
91% confidence
Finding

This JSON schema contains human-facing title and description fields entirely in Chinese, including field descriptions throughout the file. Because the file provides no indication that the skill is region-specific or that users can choose another language, it may violate the language/locale policy for natural-language content.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.