T01 · Skill Instruction Hijacking
- Location
src/utils/request.js:50- Finding
Deceptive Promotional Content Injected into Authentication Error Output
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This Douyin data-collection skill mostly matches its stated purpose, but it needs Review because it contradicts its own auth-error safety promise, sends the API token in URL query strings, and stores scraped results locally by default.
Install only if you are comfortable sending Douyin search terms, target URLs, and a GUAIKEI service token to www.guaikei.com, and with result data being saved under the skill's logs directory by default. Treat the token as sensitive, rotate it if exposed, avoid running broad inferred requests, and review stored logs because they may contain creator, commenter, and media URL data.
src/utils/request.js:50Deceptive Promotional Content Injected into Authentication Error Output
src/utils/request.js:102API Token Exposed in URL Query Strings Across All Remote Requests
The skill states it writes logs to a local logs/ directory with filenames derived from timestamps and keywords, but that filesystem write capability is not surfaced in the high-level purpose statement. Hidden or under-documented local write behavior can expose scraped data, user queries, or tokens-in-errors to disk and surprise operators reviewing the skill.
The skill states it writes logs to a local logs/ directory with filenames derived from timestamps and keywords, but that filesystem write capability is not surfaced in the high-level purpose statement. Hidden or under-documented local write behavior can expose scraped data, user queries, or tokens-in-errors to disk and surprise operators reviewing the skill.
The skill states it writes logs to a local logs/ directory with filenames derived from timestamps and keywords, but that filesystem write capability is not surfaced in the high-level purpose statement. Hidden or under-documented local write behavior can expose scraped data, user queries, or tokens-in-errors to disk and surprise operators reviewing the skill.
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 capability use weakens reviewability and can cause the skill to access sensitive runtime data outside a clearly bounded contract.
The trigger rule says the skill should activate even when the user does not mention Douyin, for broad short-video research tasks. Over-broad activation can cause the agent to invoke a data-collection skill in the wrong context, leading to unintended external queries, unnecessary token use, and collection of platform-specific data when the user asked something more general.
The statement "纯中文界面" indicates a fixed Chinese-only interface. This is a natural-language locale restriction, and the file does not offer the user a language choice or document a justified compliance reason for enforcing Chinese only.
This JSON schema uses Chinese-only title and description text, and all field descriptions in the file follow the same locale pattern. For a generally reusable skill asset, forcing a specific language without user opt-in matches the language/locale policy violation criteria.
The schema explicitly documents video_url as both playback and download addresses, which conflicts with the stated skill scope that says it is not intended for downloading or watermark-removal. This mismatch can enable downstream agents or users to repurpose the skill for prohibited content acquisition, increasing policy and misuse risk even if no direct exploit code is present in this file.
The manifest limits the skill to search, list, comments, and trending-query use cases and explicitly says it is not suitable for downloading. However, the response schema describes play_addr as both a playback address and a 视频下载地址, which indicates the skill exposes a direct download-capable URL as part of its documented output.
The README advertises automatic JSON log export of scraped video, author, and comment data but does not prominently warn users that collected data will be stored on disk by default. Because the skill processes potentially sensitive public-profile and comment data, silent local persistence can create privacy, retention, and secondary exposure risks on shared or insecure systems.
The README defines very broad natural-language trigger phrases such as common verbs like '搜索/找' plus generic nouns, which can cause the skill to activate in contexts the user did not clearly intend. In an agent setting, this increases the risk of unintended scraping actions against an external service, especially because the skill performs data collection and writes results locally.
The hotlist activation rules use broad phrases like '热点/榜单/今天什么火' with high priority and limited exclusion boundaries, making accidental invocation likely. In this skill's context, unintended activation can trigger external requests and retrieval of platform data without sufficiently specific user authorization.
This markdown file presents all operational guidance and parameter descriptions in Chinese, which can impose a specific language on users without opt-in. The policy allows locale constraints only when clearly justified or when the user is offered a language choice, neither of which appears here.
This code sends a token and video URL to external API endpoints via requestApi when creating a comment task. Although the JSDoc documents parameters for developers, there is no user-facing warning, confirmation, or visible notice in this file that user or system data will be transmitted over the network.
The getCommentTask function performs a GET request containing the token and target URL, which transmits potentially sensitive operational data to a remote service. The file contains developer comments but no user-facing disclosure, confirmation, or warning about this network activity.
This JavaScript file contains user-facing natural-language comments only in Chinese, including the top-level description and constant explanations. Under the policy, forcing a specific language without opt-in or justification is a natural-language locale violation.
The CLI writes fetched comment data to a local JSON file after completing the query, creating unintended data persistence beyond a transient read operation. Because comment content can include usernames, profile details, and other potentially sensitive or regulated data, silent local retention increases the risk of privacy exposure, accidental redistribution, and forensic residue on shared systems.
The tool silently saves comment results to disk without explicit user consent or a prominent warning, which can surprise users who expect a query-only operation. In the context of scraping social-media comments, this increases privacy and compliance risk because collected data is retained locally even when the user only intended to inspect output interactively.
The CLI descriptions, examples, and runtime messages are presented only in Chinese, which imposes a specific language on users without opt-in. Under the policy rule, hard-coded single-language behavior is a natural-language locale violation unless the tool explicitly offers language selection or justifies the locale restriction.
The CLI writes fetched Douyin results to a local JSON file after completing a read-only fetch operation, which creates unexpected persistent storage of potentially sensitive or regulated content. This increases exposure if the host is shared, backups are collected, or the output contains personal data from creators/comments returned by the API.
This JavaScript file contains user-facing natural language in comments, error messages, and help text exclusively in Chinese. Under the policy, forcing a specific language without user opt-in or a documented locale justification is a natural-language policy violation.
The code emits all validation and status messages in Chinese, including error strings and success output, without offering any language selection or indicating that this skill is intended only for Chinese-speaking users. This creates a natural-language locale policy issue because the skill effectively forces a specific language on users without opt-in.
The manifest describes a Douyin data retrieval skill for searching keywords, fetching creator posts, comments, and hot trends. This utility creates directories and writes caller-provided content to local files under a logs directory, which is a persistent file-write capability unrelated to the user-facing purpose of read-only platform data collection.
The AuthError message is written entirely in Chinese and includes specific support instructions, which imposes a language choice without offering user selection or documenting a justified locale restriction. This matches the policy category for natural-language locale violations.
This code performs outbound HTTPS GET and POST requests, including URL query parameters and JSON request bodies, but provides no confirmation prompt or user-facing disclosure that data will be sent to a remote service. The nearby docstring describes the API helper mechanically, but does not warn about network transmission or what user/system data may be included.
No suspicious patterns detected.