Back to skill

Security audit

guaikei-douyin-content-decision-data

Security checks for vulnerabilities and agentic risk

Overview

This appears to be a real Douyin public-data tool, but it has credential-handling and disclosure mismatches users should review before installing.

Review before installing. Use only with Douyin public data and non-sensitive research terms, expect results to be saved locally under logs/, and use a GUAIKEI_API_TOKEN you can rotate because the current code sends it in URL query strings to www.guaikei.com. Treat runtime authentication contact or promotional output as a disclosure mismatch.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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)

T01 · Skill Instruction Hijacking

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

Undisclosed promotional output in authentication failure paths

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

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

API credential exposed in URL query strings

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • 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
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (45)

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The skill presents itself as a Douyin public-data retrieval tool, but the documentation also states that it writes files to logs/, constructs file paths, and creates directories. Undeclared or underemphasized filesystem activity broadens the attack surface because collected data, query terms, or operational metadata may be persisted locally when users expect transient processing.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The skill presents itself as a Douyin public-data retrieval tool, but the documentation also states that it writes files to logs/, constructs file paths, and creates directories. Undeclared or underemphasized filesystem activity broadens the attack surface because collected data, query terms, or operational metadata may be persisted locally when users expect transient processing.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The skill presents itself as a Douyin public-data retrieval tool, but the documentation also states that it writes files to logs/, constructs file paths, and creates directories. Undeclared or underemphasized filesystem activity broadens the attack surface because collected data, query terms, or operational metadata may be persisted locally when users expect transient processing.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
91% confidence
Finding

The skill documentation declares use of an environment variable token but does not define an explicit tool/permission scope such as env access. That creates an authorization gap: the runtime may grant broader capabilities than operators expect, or reviewers may miss that secret access is required at all.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The trigger definition is overly broad and allows the skill to activate for generic short-video research even when the user did not specify Douyin. That can cause data collection actions to run in the wrong context, leading to unintended external requests, privacy surprises, or platform-specific outputs the user did not ask for.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

Allowing activation for broad multi-step requests like 'help me research this niche' without sufficient constraints increases the risk of unintended tool use. In agent environments, overbroad routing is dangerous because it can silently expand data access and network activity beyond the user's precise intent.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The schema explicitly documents video_url as both playback and download addresses, which conflicts with the skill description stating it does not support video downloading. In an agent ecosystem, exposed schema fields often drive capability discovery and downstream use, so this mismatch can enable or encourage unauthorized download behavior and policy bypass.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

This JSON schema contains user-facing natural-language fields such as the title and descriptions entirely in Chinese, but does not indicate that the skill is region-specific or provide any language/locale opt-in. Under the policy rule, forcing a specific language without user choice is a natural-language policy concern.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The manifest says the skill is not applicable to publishing/editing/downloading videos, framing it as a public-data research tool. However, the schema description for play_addr explicitly labels the field as both a playback address and a '视频下载地址', which documents download-oriented behavior/output and conflicts with the stated scope.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
83% confidence
Finding

This markdown file states that the skill automatically generates JSON logs, which is a file-writing behavior affecting user data handling. Although the output location is documented later, the description does not clearly warn near the usage steps that fetched content and metadata will be persisted locally by default.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
80% confidence
Finding

The skill requires use of the sensitive environment variable GUAIKEI_API_TOKEN, but the setup instruction does not immediately warn users that this is a credential requiring careful handling. A brief caution appears later in the FAQ, but not where the credential is first introduced in the main setup path.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
78% confidence
Finding

The README tells users to obtain a token from the vendor website and immediately provides runnable commands, implying external API communication. For a markdown skill description, the lack of a direct warning about outbound requests and transmission of query/URL inputs to a third-party service is a privacy and transparency gap.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

This markdown file presents all usage instructions and parameter descriptions exclusively in Chinese, which can amount to a language/locale policy issue when no user opt-in or alternative language is provided. The title includes an English gloss, but the operational documentation itself does not offer language choice or explain a justified locale restriction.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The manifest describes capabilities around searching Douyin public data, fetching creator works, retrieving/analyzing comments, and checking hot rankings. In this file, the skill additionally persists full output to disk via log.taskWrite, which is not mentioned as part of the skill's purpose and goes beyond transient retrieval/analysis behavior.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

This JavaScript file contains user-facing strings such as status/error messages and comments that indicate the skill operates in Chinese only. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation unless the locale restriction is explicitly justified.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The CLI persists full search output to a local JSON file after completion, but the user is not explicitly warned that their query terms and returned content will be stored on disk. In this skill context, search keywords may reflect competitive research, monitoring targets, or other sensitive business interests, so silent local retention can create an unintended privacy and data exposure risk, especially on shared machines or in agent environments where logs are collected centrally.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

Multiple user-facing error messages are hard-coded in Chinese, including authentication and network failure text. This imposes a specific language on users without offering a locale choice or documenting a justified region-specific constraint, which matches the language/locale policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

This code constructs all user-facing output strings in Chinese, including headings and labels, with no indication that the skill is region-specific or that users can opt into another language. Under the policy, forcing a specific language without user choice 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
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 user opt-in is a natural-language policy violation unless the locale restriction is clearly documented and justified, which is not evident in this file.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
70% confidence
Finding

The token-management section says runtime output must not include contact details or promotional content and that such information should appear only in readme.md. At the same time, the authentication line points users to readme.md for token acquisition, which is not itself unsafe, but creates intent ambiguity around whether the skill's operational guidance includes acquisition/promotional material closely tied to auth failures. This is a documentation-level divergence rather than a code-level security issue.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

The manifest describes the skill as a Douyin public-data retrieval tool and its permissions section says it does not write to the filesystem except for logs. However, the I/O specification explicitly says outputs are automatically saved to logs/, which is additional persistent behavior beyond a pure stdout JSON tool and is not reflected in the command descriptions. This is a mild description/behavior mismatch because the skill presents itself primarily as a JSON-emitting data fetcher.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The phrase '纯中文界面' indicates a fixed language/locale constraint. The file does not present this as an opt-in user choice or clearly justify it as a necessary region-specific compliance limitation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

This JSON schema contains user-facing title and description fields entirely in Chinese, including parameter descriptions. For a general-purpose skill file, forcing a single language without opt-in or justification can violate language/locale policy requirements.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
92% confidence
Finding

The schema title and description are written entirely in Chinese, which imposes a specific language on users or downstream tooling without any opt-in or explanation. Under the policy, language constraints should either be optional for the user or 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
86% confidence
Finding

The schema title and description are written only in Chinese ("抖音热榜 - API出参" and "抖音实时热榜, API出参Schema详解"), which imposes a specific language in user-facing metadata. Under the policy, locale or language constraints should be optional, user-selectable, or clearly justified as region-specific.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.