Back to skill

Security audit

GUAIKEI抖音社媒内容整理

Security checks for vulnerabilities and agentic risk

Overview

This skill is a read-only Douyin data tool with disclosed third-party API use and no hidden destructive or privileged behavior found.

Before installing, confirm you are comfortable sending Douyin keywords, URLs, and your GUAIKEI_API_TOKEN to www.guaikei.com. Use it only for public Douyin data you are authorized to process, and manage or delete the local logs directory if saved comments, author fields, or profile metadata should not be retained.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (40)

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

从代码内容看,src/douyin/post-cli.js 的核心功能是“获取抖音博主作品列表”。参数也只支持用户主页 URL/sec_uid 和数量限制,随后创建并查询作品抓取任务,返回作品结果。该行为与声明中的第(3)项“博主作品抓取”一致,但无法覆盖声明中的另外三项核心能力:关键词搜索、热榜查询、评论分析。因此,如果将这段代码视为对该技能描述的代表性实现,则描述明显比实际代码范围更广,存在能力层面的不匹配。代码中写日志、校验 token、规范化 URL 属于支持性实现细节,不构成额外未声明能力。

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

声明描述的是一个面向抖音的数据采集与分析技能,核心能力应包括访问抖音资源、获取作品/评论/热榜数据并输出结构化结果。但提供的代码仅是一个通用参数解析模块:读取命令行参数、校验 flag 值、处理布尔开关、必填项检查、位置参数解析,以及生成帮助文本。它没有网络请求、没有抖音相关 API 调用、没有页面抓取、没有数据整理分析逻辑,也没有任何与热榜、作品、评论相关的实现。因此这不是对声明能力的支持性细节代码,而是与声明主功能明显不一致的独立基础工具模块。

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

声明描述的是一个面向抖音数据采集与分析的技能,核心能力应涉及网络请求、数据抓取、检索、结构化处理或评论分析。但提供的代码片段仅实现了日志文件写入:校验参数、清理文件名、创建本地目录并写入文件。这属于辅助性的本地存储/日志功能,而且该片段本身完全没有体现任何已声明的四大核心能力。按照评估标准,如果代码执行了未声明的能力或其主要目的与声明明显不同,应判定为不匹配。这里代码访问了本地文件系统这一资源,而声明未提及;更重要的是,代码行为与“抖音数据获取与分析”存在显著偏离,因此应标记为描述与行为不匹配。

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

声明描述的是一个面向抖音平台的数据采集与分析技能,而给出的代码片段只是一个辅助函数:读取本地 package.json 的 name 字段并缓存返回。该行为与声明的核心功能没有对应关系,也没有体现任何网络请求、平台数据访问、结构化整理或分析逻辑。虽然读取 package.json 可能属于内部辅助实现,但就当前代码片段本身而言,其实际行为与声明用途明显不一致,应判定为不匹配。

Content

No source excerpt is available for this finding.

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · references/changelog.md (reported line 76)May include surrounding context.

md
## 1.0.2 - 2026-03-24

- 在SKILL.md中添加了openclaw元数据、使用帮助、许可证、标签和示例,以实现更好的集成与文档化。
- 移除了两个本地文件(.env 和 scripts/last-search.json),以优化代码结构并提升安全性。
- 文档现已更加简洁且以用户为中心,重点在于提供清晰的使用说明和数据字段解释。
- 突出技能特性、合规要点及技术流程。

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
70% confidence
Finding

Without declared permissions the skill's intent is opaque and cannot be validated.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The file presents all user-facing instructions, warnings, and usage guidance exclusively in Chinese. Under the policy, forcing a specific language without user opt-in can be a natural-language policy violation unless the locale constraint is explicitly documented and justified.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
84% confidence
Finding

The manifest limits the skill to four capabilities: keyword search for videos/图文, hot list queries, creator post scraping, and video comment analysis. However, the changelog states the skill supports retrieval of broader public Douyin content including '用户等', which expands behavior into user search not described in the manifest.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The manifest describes structured collection and analysis for videos/图文, hot trends, creator posts, and comments. The changelog instead claims a '通用搜索接口' supporting search of '视频、图文、用户及社交数据', which materially broadens the skill beyond the declared four-purpose scope.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

This documentation explicitly enables collection of Douyin content, author profile data, and comment data from third parties, but provides no warning about privacy expectations, lawful basis, platform terms, rate limits, or downstream handling of personal data. In the context of a scraping/data-organization skill focused on social-media monitoring, that omission increases the risk of misuse for large-scale profiling, unauthorized collection, or non-compliant processing of user-generated content.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The function creates a remote task by POSTing the provided video URL and authentication token through requestApi, which is a network operation involving user/system data. In this file there is no confirmation prompt, disclosure message, or warning to the user about transmitting that data.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

This function performs a GET request to query comment task results and includes the user-provided URL plus token in the request flow. The file contains no visible prompt, log, or other disclosure to inform the user that their input and credentials are being transmitted off-process.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The CLI writes the full fetched comment results to a local JSON file without any explicit disclosure, opt-in, or data-minimization controls. Because comment data may contain personal or sensitive user-generated content, silent persistence increases privacy and data-retention risk if the host system is shared, backed up, or later compromised.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The program saves fetched comment data to disk automatically after successful execution, but the user is not warned and no confirmation is requested. In the context of a social-media data collection skill, this is more dangerous because the stored output can include large volumes of third-party comments and engagement metadata, creating an undisclosed local dataset that may violate user expectations or internal data-handling policies.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
82% confidence
Finding

The CLI invokes post.createPostTask() and post.getPostTask() using the user's target identifier and token, which implies network transmission of user-provided data. This file does not present a clear disclosure that the input will be sent to an external service.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The CLI writes the full fetched Douyin results to a local JSON file after completing the request, but this persistence behavior is not evident from the skill description and is not disclosed to the user in this file. Because the results may include profile metadata, post data, and comment-related information, silent local retention can expose sensitive or regulated data to other local users, backups, or later unintended processing.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

This code saves fetched Douyin results to disk without prior warning or consent, creating a privacy and data-handling risk beyond the immediate CLI output. Local files can persist longer than expected and may be accessible to other processes, users, sync tools, or incident responders, increasing the blast radius of any collected content.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
86% confidence
Finding

The calls to search.createSearchTask and search.getSearchTask transmit the user's keyword and search filters to an external service using an API token. The file does not provide a user-facing disclosure that entered search terms will be sent over the network to a third-party/backend service.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The CLI writes full search results to a local log file, and those results can contain user queries, content metadata, and comment/interaction data that may be sensitive or regulated depending on use. Because this persistence happens automatically and without clear notice or consent, it creates an avoidable data retention and local exposure risk on shared systems or in downstream backups.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This file contains multiple user-facing error strings in Chinese only, such as "请求失败" and "GUAIKEI_API_TOKEN 无效, 请检查环境变量". For a general-purpose request utility, hard-coding a single language without opt-in or documented regional scope is a natural-language policy issue under the language/locale rule.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This JavaScript file contains multiple user-facing validation/error messages exclusively in Chinese, such as the outputs on L06, L10, L14, and L19. For a general-purpose skill, forcing a specific language without user opt-in can violate language/locale policy requirements.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

The title and description are entirely in Chinese, which can impose a specific language/locale on users if this schema is surfaced in tooling or documentation. There is no indication that Chinese is optional or that the skill is intentionally limited to a Chinese-language context.

Content

No source excerpt is available for this finding.

Vague Triggers

Low
Category
Not specified by scanner
Confidence
80% confidence
Finding

This JSON schema describes command-line input for the skill, but the natural-language description only says it fetches Douyin comments and does not state when the skill should be invoked versus not invoked. For manifest-like files, missing specificity around trigger scope can contribute to unintended activation if this description is used operationally.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

The schema title and description are written only in Chinese, which can reflect a language-specific constraint without any documented opt-in or justification. Under the policy criteria, natural-language content that forces a specific language may be a locale-policy issue when no user choice or region-specific scope is stated.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
80% confidence
Finding

This JSON schema uses Chinese-only natural-language metadata in the title and multiple description fields, which can impose a specific language on downstream users or tooling without indicating any locale choice. The policy requires avoiding forced language or locale constraints unless the file clearly documents that the skill is intentionally region-specific or offers user choice.

Content

No source excerpt is available for this finding.

Static analysis

Detected: suspicious.exposed_secret_literal

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
SKILL.md:16