T01 · Skill Instruction Hijacking
- Location
src/utils/token.js:23- Finding
Promotional content is injected into authentication failure output
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill mostly matches its Douyin public-data purpose, but it has under-disclosed behavior around broad triggering, credential handling, local data retention, and agent-visible promotional or remote error output.
Review before installing. Use only if you are comfortable sending Douyin queries, profile/video URLs, and a Guaikei API token to the third-party service, and with fetched results being saved locally by default. Treat error messages from the remote service as untrusted data, and avoid using broad natural-language requests that do not explicitly ask for Douyin data.
src/utils/token.js:23Promotional content is injected into authentication failure output
src/utils/request.js:28Untrusted remote API error messages are emitted into Agent-visible output
src/utils/request.js:88Reusable API token is transmitted in URL query strings
The skill states that logs are automatically written to logs/ with filenames derived from timestamps and keywords. Local file writes increase the attack surface because user-influenced strings may end up persisted on disk, potentially exposing sensitive queries, creating retention/compliance issues, or enabling path/name handling bugs if sanitization is weak.
The skill states that logs are automatically written to logs/ with filenames derived from timestamps and keywords. Local file writes increase the attack surface because user-influenced strings may end up persisted on disk, potentially exposing sensitive queries, creating retention/compliance issues, or enabling path/name handling bugs if sanitization is weak.
The skill states that logs are automatically written to logs/ with filenames derived from timestamps and keywords. Local file writes increase the attack surface because user-influenced strings may end up persisted on disk, potentially exposing sensitive queries, creating retention/compliance issues, or enabling path/name handling bugs if sanitization is weak.
The skill states that logs are automatically written to logs/ with filenames derived from timestamps and keywords. Local file writes increase the attack surface because user-influenced strings may end up persisted on disk, potentially exposing sensitive queries, creating retention/compliance issues, or enabling path/name handling bugs if sanitization is weak.
The skill states that logs are automatically written to logs/ with filenames derived from timestamps and keywords. Local file writes increase the attack surface because user-influenced strings may end up persisted on disk, potentially exposing sensitive queries, creating retention/compliance issues, or enabling path/name handling bugs if sanitization is weak.
The skill states that logs are automatically written to logs/ with filenames derived from timestamps and keywords. Local file writes increase the attack surface because user-influenced strings may end up persisted on disk, potentially exposing sensitive queries, creating retention/compliance issues, or enabling path/name handling bugs if sanitization is weak.
The skill explicitly instructs generalized activation even when the user does not mention Douyin. Over-broad trigger logic can cause the agent to invoke external-data tooling unexpectedly, sending user queries to third-party services without clear consent or relevance, which is a privacy and boundary-control problem.
The explicit '泛化触发' statement is insufficiently bounded and encourages the agent to infer Douyin intent from broad content-research scenarios. In practice this can route unrelated user tasks through this skill, unnecessarily exposing prompts, causing irrelevant data collection, and violating user expectations about tool use.
The skill declares use of an environment variable (GUAIKEI_API_TOKEN) but does not explicitly declare any tool scope or permissions boundary. That creates an authorization and transparency gap: an orchestrator or reviewer cannot easily tell that the skill depends on secret material, which increases the risk of unintended secret exposure or over-broad execution rights.
The statement '纯中文界面' indicates the skill is limited to Chinese, but the file does not present this as a user-selectable option or justify it as a documented regional compliance constraint. This is a natural-language locale policy concern because it forces a specific language by default.
The manifest explicitly says the skill is not suitable for downloading materials, but this response schema documents video_url as both playback and download addresses. That indicates the skill exposes downloadable video resource links, which goes beyond the stated read/search/comment/rank viewing intent.
The manifest explicitly says the skill is not suitable for downloading素材, implying a read-only discovery/analysis scope. However, the response schema documents play_addr as both a playback address and a '视频下载地址', which indicates the skill exposes downloadable media URLs rather than only search, creator, comment, or ranking metadata.
The README advertises automatic JSON log generation and later mentions storage in a logs folder, but it does not clearly foreground that fetched platform data, including comments and creator/video metadata, will be written to local files by default. This can lead to unintentional retention of scraped data on disk, increasing privacy, compliance, and data-handling risk if users assume results are ephemeral.
The natural-language trigger examples are broad enough to match ordinary user phrasing such as '搜一下' or '找…相关视频', which can cause the agent to invoke this skill when the user did not clearly request Douyin data collection. In this skill’s context, unintended invocation can expose user queries to a third-party service and initiate collection/storage of platform data without sufficiently explicit consent.
The competitor-monitoring examples use broad phrases like viewing a creator's works or homepage, which may over-trigger on common requests about accounts or profiles. Because the skill is designed to batch collect creator content, accidental invocation can result in excessive third-party data retrieval and local persistence beyond what the user specifically intended.
Generic comment-analysis phrases like '看看这个视频的评论' can be triggered in many conversational contexts and may cause the agent to fetch comment data from a provided link without clear informed intent. In this skill, that is more sensitive because comments can include personal data or controversial content, and the results are also logged locally.
The changelog and skill descriptions are written entirely in Chinese, which can imply a fixed language experience without user opt-in. The policy requires flagging language or locale constraints when the skill forces a specific language and does not offer a choice or document a justified regional limitation.
The CLI writes fetched comment data to a local JSON file after completing the query, even though its apparent purpose is to retrieve and display results. Persisting user-requested social media comments creates an unnecessary data-retention side effect that may surprise users, expose sensitive or regulated content in local storage, and increase the chance of later leakage from logs, shared workspaces, or compromised hosts.
The tool silently saves retrieved comment results to disk without user-facing warning or confirmation. Because comments may include usernames, opinions, or other personal data, this undisclosed write behavior can violate user expectations, create privacy/compliance issues, and leave recoverable local artifacts on developer machines or CI runners.
This code contains multiple user-facing strings in Chinese, including status and error messages, and does not provide any opt-in, fallback, or indication that the skill is intentionally limited to Chinese-speaking users. That creates a natural-language locale policy issue because the skill effectively forces a specific language without user choice.
The code reads GUAIKEI_API_TOKEN from the environment and calls remote API functions to create and fetch post tasks using the token, URL, and limit. Although network access is part of the tool's behavior, this file does not provide an explicit user-facing disclosure that input data and credentials will be used in outbound API requests.
The CLI persists fetched Douyin post results to a local JSON file after completing what is described as a search/read workflow. This creates an undisclosed data-retention side effect: scraped results may contain profile metadata or other sensitive business-research data and will remain on disk where other local users, processes, or backups can access them.
The program writes retrieved results to a local file without any explicit warning or consent mechanism in this CLI path. For a skill positioned as search/analysis, silent persistence can surprise users and leak collected data through shared workstations, log collection agents, or filesystem backups.
The CLI persists full search results to a local JSON file whose name includes user-supplied keyword data, and the tool does not provide a clear user-facing warning or consent flow before writing potentially sensitive query/output data to disk. In this skill’s context, users may search topics, creators, and public sentiment for research, which can still expose operational interests or sensitive research targets through local artifacts on shared machines or CI/workspaces.
The authentication error message is presented only in Chinese, which imposes a specific language choice on users with no opt-in or fallback. This can violate language/locale policy when the skill does not clearly document that it is region-specific or provide language selection.
No suspicious patterns detected.