T01 · Skill Instruction Hijacking
- Location
src/utils/request.js:33- Finding
Unsanitized Remote API Error Messages Reach Agent-Visible Output
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill mostly matches its stated Douyin public-data export purpose, but it has review-worthy risks around broad activation, credential handling, remote error text, promotional auth-failure output, and automatic local data retention.
Install only if you are comfortable sending Douyin search terms, profile/video URLs, and a Guaikei API token to the provider service, and review or patch the token-in-query, remote-error-message, and auth-failure contact behavior first. Treat exported logs as retained datasets that may include personal information from public comments, and delete or protect them after use.
src/utils/request.js:33Unsanitized Remote API Error Messages Reach Agent-Visible Output
src/utils/request.js:51Hardcoded Promotional Contact Information Is Emitted on Authentication Failure
src/api/search.js:58API Authentication Token Is Transmitted in URL Query Parameters
声明描述的是一个覆盖多类抖音公开信息查询的综合技能,但提供的代码片段只涉及关键词搜索:创建搜索任务、查询搜索结果,以及对结果附加作者主页链接和时间字符串。没有看到评论读取、热搜读取、按博主作品列表抓取等核心能力实现。因此代码行为明显比声明范围窄,声明未准确代表该代码块的实际功能。虽然后续其他代码文件可能补足功能,但就该 supplied code chunk 而言,存在描述与行为不一致。
声明描述的是一个面向抖音公开信息查询的技能,预期应体现搜索、内容抓取、评论/热搜读取等平台数据访问行为。但提供的代码仅实现了与业务无关的基础设施:通用 CLI 参数解析、flag/位置参数处理、必填校验和帮助文本生成。代码中没有任何抖音相关逻辑、公开信息访问、搜索、评论读取、热搜查询或账号内容分析功能。因此该代码片段的实际行为与声明用途存在明显不匹配,且其主要目的完全不同。
该代码片段只是一个统一错误处理工具文件,定义了若干错误类,未体现任何与抖音或短视频平台数据访问、搜索、读取公开信息相关的行为。虽然错误处理可以作为技能内部的支持实现细节,但在只提供这一代码片段的情况下,其实际行为与声明的核心功能明显不一致,因此应判定为描述与代码行为不匹配。
声明描述的是一个面向抖音公开信息检索/阅读的技能,但实际代码仅执行本地日志文件写入,没有任何与抖音、短视频平台、公开信息抓取、评论读取、热搜查询或账号内容分析相关的行为。其主要能力和资源访问对象是本地文件系统,而非网络平台数据,因此属于明显的描述与行为不一致。
The declared description says the skill should retrieve public information from Douyin/short-video platforms, including content search, creator post inspection, comment reading, and hot-topic lookup. The supplied code does none of that. It merely uses fs/path to locate package.json, reads it from the local filesystem, parses it, and returns pkg.name. This is a materially different purpose and accesses a resource (local package metadata) unrelated to the declared functionality. This is not just a supporting detail of the claimed behavior; it is the only behavior shown, so the description and code are mismatched.
This code chunk's primary function is a low-level helper: retrying async operations with exponential backoff, honoring a noRetry flag, and invoking an optional error handler. That is a supporting utility, not behavior matching the declared purpose of fetching and analyzing public information from Douyin or similar short-video platforms. Because the supplied code does not implement any of the declared externally visible capabilities and instead serves an unrelated infrastructure role, the description does not accurately represent what this code chunk actually does.
The skill's trigger conditions are overly broad, including vague requests about 'short-video platform' popularity or competitor research even when the user did not explicitly ask for Douyin. This can cause the agent to invoke external data-collection behavior outside user intent, increasing the risk of unnecessary network access, unwanted data gathering, and scope creep in multi-step tasks.
The generalized trigger guidance explicitly instructs activation inside broad multi-step research workflows without sufficient scoping constraints. In an agent setting, this can lead to silent escalation from a generic research request into targeted social-media scraping or API usage the user did not specifically authorize.
Without declared permissions the skill's intent is opaque and cannot be validated.
The manifest states that outputs are automatically saved into a logs/ directory with timestamps and query parameters, but it does not prominently warn users that collected data will be persisted locally. This creates privacy and data-governance risk because search terms, URLs, comments, or other collected public data may be retained unexpectedly and exposed to later users or processes on the host.
The line '纯中文界面,国内服务器可用' imposes a language/locale constraint in natural language. The policy allows locale constraints only when users are given a choice or the restriction is clearly documented and justified; here, the Chinese-only interface is stated without opt-in or explicit justification.
The schema title and description are written only in Chinese, which imposes a specific language in natural-language metadata without any opt-in or justification. Under the policy, locale or language constraints should either be optional for users or clearly documented as region-specific.
This JSON schema contains natural-language title and description text exclusively in Chinese, which can impose a fixed language/locale on users or downstream tooling. The file does not indicate that the skill is region-specific or provide any opt-in or alternative language support.
The manifest explicitly says the skill is not applicable to video downloading, but this response schema defines video_url as containing both playback and download addresses. That indicates the skill may expose downloadable video links, which exceeds the stated non-download scope.
The manifest explicitly says the skill is not applicable to video downloading, but this response schema documents play_addr as both a playback address and a video download address. Exposing download-oriented output broadens the behavior beyond the stated read/search-only use case.
The skill promotes collecting and exporting Douyin comment data for analysis without a clear privacy notice that comment text may include personal, sensitive, or harmful content. Even if the data is publicly accessible, bulk collection and structured export materially increase privacy and compliance risk by making large-scale analysis and redistribution easier.
The README explicitly says the tool auto-generates JSON logs for exported data, but it does not clearly warn that scraped public content and comments may still contain personal or sensitive information that will be stored on disk. This can lead to unintended local retention, over-sharing, or secondary misuse of collected data, especially in team or marketing workflows where logs may be copied or uploaded elsewhere.
The skill explicitly supports bulk collection of Douyin comment data but provides no warning, limitation, or handling guidance for potentially privacy-sensitive user-generated content. In this skill context, scraping public comments at scale can facilitate profiling, dataset building, or downstream misuse of personal data, making the omission materially risky even if the source is publicly accessible.
This code sends a skill token and user-provided search keyword to a remote API via requestApi, which is a network operation involving potentially sensitive user or system data. Although the functions have developer docstrings, there is no user-facing confirmation, warning, or visible disclosure in this file that such data will be transmitted.
The GET request includes the token, keyword, and other search parameters in a remote API call. For code files, network transmission of user or system data should have some form of user disclosure, but this file only contains developer-oriented comments and no user-visible warning.
The CLI writes fetched Douyin comment data to a local JSON file automatically, but this file contains user-requested content that may include personal data, sensitive opinions, or regulated content from third parties. Silent persistence increases the risk of unintended disclosure through shared machines, backup systems, logs, or later exfiltration, especially because the skill is explicitly designed to scrape and export platform data.
This file contains natural-language descriptions and user-visible messages in Chinese, indicating the skill is designed to communicate in a single language only. The file does not provide any opt-in, fallback, or justification that the skill is intentionally limited to a Chinese-language or region-specific audience.
The CLI persists the full fetched Douyin results to a local JSON file after printing them, creating an undisclosed secondary data store. Even if the source content is public, bulk collection plus local retention increases privacy, compliance, and data exposure risk because scraped data may contain usernames, comments, or other metadata that outlives the user’s immediate request and can be accessed by other local users or later processes.
This file silently writes fetched results to a local JSON file without any user-facing warning in the command flow. That behavior violates least surprise and can expose collected platform data to unintended readers on the host, especially in shared environments, CI runners, or agent sandboxes where artifacts may be retained or uploaded automatically.
This code presents command descriptions, examples, warnings, and runtime messages entirely in Chinese, which imposes a specific language on users. The file does not offer any language selection, opt-in, or justification that this skill is intentionally limited to a Chinese-speaking or region-specific context.
No suspicious patterns detected.