T01 · Skill Instruction Hijacking
- Location
src/utils/token.js:23- Finding
Authentication Failures Emit Hard-Coded Promotional and Contact Messages
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is mostly aligned with Douyin public-data research, but it needs review because it mishandles the API token and its runtime auth errors contradict the documented safety promise.
Install only after reviewing the credential and logging behavior. Use a dedicated, revocable GUAIKEI_API_TOKEN, expect requests and query data to be sent to www.guaikei.com, treat generated logs as potentially sensitive, and delete or protect them after use. Be aware that auth-error output may include promotional contact information despite the skill documentation saying it will not.
src/utils/token.js:23Authentication Failures Emit Hard-Coded Promotional and Contact Messages
src/utils/request.js:105API Credential Is Transmitted in URL Query Parameters
The skill declares data retrieval functions, but it also states that it writes structured logs to a local logs/ directory with filenames derived from timestamps, keywords, and parameters. Local logging of user queries and fetched metadata introduces an undeclared persistence channel that can leak sensitive research terms, URLs, or operational activity to other local users or later processes.
The skill declares data retrieval functions, but it also states that it writes structured logs to a local logs/ directory with filenames derived from timestamps, keywords, and parameters. Local logging of user queries and fetched metadata introduces an undeclared persistence channel that can leak sensitive research terms, URLs, or operational activity to other local users or later processes.
The skill uses an environment variable token (GUAIKEI_API_TOKEN) but does not declare any explicit tool scope or permission boundary. This weakens least-privilege guarantees because an orchestrator may allow broader environment access than necessary, increasing the chance of unintended secret exposure or unsafe execution assumptions.
The description says the skill should also activate when the user asks broad requests like '帮我看看同行' without mentioning Douyin. Overly broad implicit triggers can cause the wrong skill to activate on unrelated requests, leading to unintended external data access, unnecessary token use, or surprising behavior outside the user's actual intent.
The implicit trigger examples include very common phrases such as '帮我做短视频竞品调研' and '最近有什么热门话题', which are not sufficiently constrained to Douyin. This increases the risk of accidental invocation in unrelated contexts and can result in unnecessary external requests, logging, and use of privileged tokens without clear user authorization.
The schema title and description are written only in Chinese, which constitutes a natural-language locale constraint in user-facing metadata. Because the file does not offer an alternative language or indicate that the schema is intentionally limited to a Chinese-language or region-specific audience, it may violate language/locale policy requirements.
The title and descriptions are entirely written in Chinese, which imposes a specific language/locale on users without any indication of opt-in or justification. Under the policy, language constraints should either offer user choice or be clearly documented as region-specific.
The natural-language description is entirely in Chinese and presents the skill as a general-purpose analysis tool, but it does not indicate that Chinese is required, optional, or limited to a China-specific audience. Under the language/locale policy, a skill should not implicitly force a specific language without user opt-in or clear justification.
The documentation advertises automatic export of scraped video, author, comment, and hot-list data into local JSON logs, but does not prominently warn that these files may contain sensitive or regulated data and persist on disk. In multi-user or shared environments, this creates a realistic risk of unintended retention, secondary disclosure, or reuse of scraped personal data beyond the user's immediate task.
The README maps broad everyday phrases like '看看同行', '今天什么火', and generic '搜索/找' patterns directly to executable scraping actions. In an agent setting, this increases the chance of unintended invocation and data collection when a user's request is ambiguous, which can trigger unauthorized scraping, unnecessary external requests, or collection of competitor/comment data the user did not explicitly ask for.
The documentation explicitly enables bulk collection of creator posts and comment data, including up to 10,000 records, but provides no guidance on privacy, consent, platform terms, or downstream handling of personal data. In a competitive-intelligence skill, this omission increases the risk of misuse for profiling, harassment, or non-compliant scraping of user-generated content.
This code sends a token and a Douyin profile URL to remote API endpoints via requestApi, which is a network operation involving potentially sensitive user or system data. Although there are developer-facing docstrings, this file provides no user-facing disclosure such as a confirmation prompt, visible log/print, or explicit warning that these values will be transmitted.
The getPostTask function performs a GET request that includes the token, URL, and limit in request parameters, sending them over the network. This file does not include any user-facing notification or confirmation about that transmission, only internal comments for developers.
User-visible messages and descriptions in this file are entirely in Chinese, including success and error outputs, with no indication that the user can choose another language. This can violate a language/locale policy when the skill imposes a specific language without opt-in or documented justification.
The command description and other user-facing strings in this file are hardcoded in Chinese, and there is no visible opt-in or language selection mechanism. This can violate a language/locale policy where tools must not force a specific language without user choice or documented justification.
This code presents its command descriptions, examples, warnings, and runtime messages only in Chinese, which can amount to a language/locale policy violation when no user opt-in or alternative locale is provided. The file does not indicate that the skill is region-specific or that Chinese is an intentional, documented constraint.
This code sends URL parameters and JSON request bodies over HTTPS via postJson/getJson, which can transmit user or system data to a remote service. While there is retry logging for failures, there is no confirmation prompt or user-facing notice in this file explaining that outbound network transmission occurs.
The code emits all user-facing warning, success, and info messages in Chinese only, including the token misconfiguration warning and status message. Because this file provides no opt-in, fallback, or documented region-specific justification, it appears to impose a specific language on users, which matches the language/locale policy violation criteria.
This code includes natural-language comments and end-user error/output strings in Chinese, such as validation errors and formatted result labels. Because the file does not indicate that the skill is region-specific or offer any language opt-in, it appears to force a specific language/locale, which matches the policy-violation criterion.
The title and descriptions are written entirely in Chinese, which creates a language-specific constraint in the skill's natural-language interface metadata. The file does not indicate that this locale is optional, user-selectable, or justified as a region-specific requirement.
This manifest-style JSON schema uses Chinese-only natural-language title and description fields throughout, with no indication that the skill is region-specific or that other language options are available. Under the language/locale policy rule, a fixed language choice without opt-in or documented justification can be a policy concern.
The natural-language metadata in the schema is entirely in Chinese, including the title and property descriptions, with no indication that this skill is region-specific or that users can choose another language. That can violate a language/locale policy when a skill imposes a specific language without opt-in or documented justification.
This JSON schema uses Chinese-only title and description text, which is a natural-language locale constraint visible to downstream users or developers. The file does not offer any language choice or explain that the schema is intentionally region-specific, so it may violate a policy requiring language or locale opt-in.
This JSON schema uses Chinese-only natural-language title and description text, which can amount to a language/locale policy constraint when consumed by downstream tools or users. The file does not provide any opt-in, alternative locale, or justification that the schema is intended only for a Chinese-specific audience.
The file presents all instructions, trigger phrases, and intent-mapping examples exclusively in Chinese, and the natural-language command mapping assumes Chinese user utterances. This effectively imposes a language/locale constraint without explicitly offering users a choice or documenting the limitation as an opt-in behavior.
No suspicious patterns detected.