T01 · Skill Instruction Hijacking
- Location
src/utils/token.js:23- Finding
Undisclosed promotional output in authentication failure paths
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
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.
src/utils/token.js:23Undisclosed promotional output in authentication failure paths
src/utils/request.js:94API credential exposed in URL query strings
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
No suspicious patterns detected.