T01 · Skill Instruction Hijacking
- Location
src/utils/token.js:23- Finding
Undisclosed Promotional Content Injected into Authentication Error Output
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill mostly matches its Douyin public-data purpose, but its runtime contradicts its own safety claims by showing promotional/contact information on token errors and handles API tokens less safely than expected.
Review before installing. The skill appears designed for public Douyin research, but it sends your queries and target URLs to guaikei.com, stores fetched results locally, and currently exposes onboarding/contact text during token failures despite claiming it will not. Avoid using it for confidential competitor research unless you accept those data flows and rotate the API token if logs or infrastructure access are a concern.
src/utils/token.js:23Undisclosed Promotional Content Injected into Authentication Error Output
src/utils/request.js:94API Credential Transmitted in URL Query Strings
src/config/constants.js:20Query Failures Can Trigger Twenty Attempts Despite a Three-Retry Policy
The finding notes local filesystem access not reflected in the description. Undisclosed file reads/writes reduce transparency and can surprise operators; in an agent skill, hidden persistence is more dangerous because users may assume an ephemeral data flow while the skill archives or inspects local files.
The finding notes local filesystem access not reflected in the description. Undisclosed file reads/writes reduce transparency and can surprise operators; in an agent skill, hidden persistence is more dangerous because users may assume an ephemeral data flow while the skill archives or inspects local files.
The finding notes local filesystem access not reflected in the description. Undisclosed file reads/writes reduce transparency and can surprise operators; in an agent skill, hidden persistence is more dangerous because users may assume an ephemeral data flow while the skill archives or inspects local files.
The finding notes local filesystem access not reflected in the description. Undisclosed file reads/writes reduce transparency and can surprise operators; in an agent skill, hidden persistence is more dangerous because users may assume an ephemeral data flow while the skill archives or inspects local files.
The finding notes local filesystem access not reflected in the description. Undisclosed file reads/writes reduce transparency and can surprise operators; in an agent skill, hidden persistence is more dangerous because users may assume an ephemeral data flow while the skill archives or inspects local files.
The finding notes local filesystem access not reflected in the description. Undisclosed file reads/writes reduce transparency and can surprise operators; in an agent skill, hidden persistence is more dangerous because users may assume an ephemeral data flow while the skill archives or inspects local files.
The finding notes local filesystem access not reflected in the description. Undisclosed file reads/writes reduce transparency and can surprise operators; in an agent skill, hidden persistence is more dangerous because users may assume an ephemeral data flow while the skill archives or inspects local files.
The skill declares access to an environment variable token (GUAIKEI_API_TOKEN) but does not declare any explicit tool scope such as permissions or allowed-tools. That creates a governance gap: the runtime may grant broader capabilities than reviewers or users can infer from the manifest, especially around secret access.
The skill states that logs are automatically archived to logs/ with timestamps, keywords, parameters, and type, but does not present this as a clear user warning in the main description. In this context, competitor names, search terms, account URLs, and fetched comment data can reveal sensitive research intent and may include personal data, so undisclosed retention materially increases privacy and confidentiality risk.
The README promotes automatic JSON log export of scraped Douyin data but does not clearly warn users up front that collected public data will be written to local files. In this skill’s context, the exported data may include comments, account identifiers, and analysis targets, creating privacy, retention, and inadvertent disclosure risks on shared machines or synced workspaces.
The README requires users to configure an external API token and send search terms, account URLs, and video URLs to the guaikei service, but it does not clearly disclose that these inputs are transmitted off-box to a third party. In a competitive-intelligence and sentiment-analysis workflow, those queries and target identifiers may themselves be sensitive business information, so lack of notice can lead to unintentional exposure.
This file uses Chinese-only natural-language documentation and user-facing action labels such as "创建任务" and "查询任务", which indicates a language constraint without user opt-in. Under the stated policy, forcing a specific language is a natural-language policy violation unless the locale restriction is explicitly justified or optional.
This JavaScript file contains user-facing natural-language strings exclusively in Chinese, including status, error, and success messages. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation unless the locale restriction is explicitly justified, which is not evident in this file.
The CLI writes the full fetched results to a local JSON file automatically, without any user consent, opt-in flag, or warning about persistence. Because this skill collects Douyin intelligence data that may include account content and potentially comment-derived user data, silent local retention increases the risk of unintended disclosure through shared workstations, backups, logs, or later exfiltration by other processes.
The CLI writes the full search output to a local JSON file, and that output includes user-supplied query terms plus potentially sensitive collected data from Douyin results. Because this persistence happens automatically and without clear consent or minimization, it can leak research activity, scraped content, or operational metadata to other local users, backups, or downstream tooling that reads the log directory.
This code embeds a user-facing authentication error entirely in Chinese and instructs the user to contact a WeChat number for resolution. That imposes a specific language and communication channel on all users without offering a language or locale choice, which matches the language/locale policy violation criteria.
This file uses Chinese-only natural-language comments and runtime messages such as the warning and info strings, with no indication that the skill is region-specific or that users can opt into another language. That creates a language/locale policy concern because the skill implicitly enforces a specific language in user-facing output.
This JavaScript file contains natural-language comments and user-facing error/output strings exclusively in Chinese, including validation errors and formatted result messages. Under the policy rule, forcing a specific language without user opt-in or documented region-specific justification is a natural-language policy violation.
The statement '纯中文界面' indicates a fixed language/locale constraint. Under the policy, forcing a specific language without opt-in is a natural-language policy violation unless the restriction is clearly justified as region-specific or users are offered a choice.
This manifest-style JSON file uses Chinese-only natural-language title and description fields for the schema and its parameters. That imposes a specific language on users or integrators without offering an alternative locale or documenting that the skill is intentionally region-specific, which matches the language/locale policy concern.
The title and description are written only in Chinese, which can constitute a language/locale policy issue when a skill forces a specific language without user opt-in or documented regional scope. The file does not indicate that this schema is limited to a Chinese-language or region-specific deployment, nor does it offer any language choice.
The title and description fields use Chinese-language text, and there is no accompanying indication that the skill is region-specific or that users can opt into this locale. Under the language/locale policy rule, hard-coding a specific language without documented choice or justification is a natural-language policy concern.
The title and field descriptions are written only in Chinese, which can amount to an implicit language policy for users or maintainers interacting with this schema. The file does not indicate that the skill is region-specific or that another language option is available, so the locale constraint is not clearly justified.
This JSON schema uses natural-language metadata exclusively in Chinese for the schema title and description, and the same pattern continues throughout field descriptions. Because the file does not document that the skill is China-specific or offer any language/locale opt-in, it may violate the policy against forcing a specific language without user choice.
This JSON schema uses Chinese-only natural-language titles and descriptions for the command-line parameters, which can constitute a language/locale policy issue when no user opt-in or regional justification is provided. The file contains multiple user-facing strings and does not indicate that the skill is intentionally limited to a Chinese-speaking or region-specific audience.
No suspicious patterns detected.