Back to skill

Security audit

GUAIKEI TikTok社媒内容整理

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed TikTok public-data command tool that uses a GUAIKEI API token, sends user queries to the provider API, and saves results locally for later analysis.

Install only if you are comfortable sending TikTok keywords, profile URLs, video IDs, and your GUAIKEI API token to www.guaikei.com. Treat the returned comments and profile metadata as potentially personal data, review platform and legal requirements for your use case, and delete local temp logs when you no longer need them.

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
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (38)

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

从代码内容看,scripts/utils/args.js 只是一个通用参数解析模块:读取命令行参数、校验参数值、处理默认值和重复参数、生成 help 文本。这类代码可以作为其他脚本的辅助组件,但当前提供的代码片段本身没有任何网络请求、TikTok 资源访问、数据抓取、结构化输出、评论内容处理或对比分析逻辑。因此,代码实际行为与声明的核心用途严重不一致。虽然它可能是某个 TikTok 工具链的基础设施之一,但就此代码块本身而言,主功能是 CLI 参数处理,而不是所宣称的 TikTok 数据采集与分析。

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

从提供的代码看,文件 scripts/utils/utils.js 只是一个日志工具模块:printBanner() 打印终端横幅,printLog() 及其导出函数打印带颜色和时间戳的日志到 stderr。代码没有任何网络请求、TikTok 资源访问、关键词检索、主页/用户名解析、视频/评论抓取、数据清洗、结构化 JSON 输出或横向对比分析相关实现。因此该代码片段的实际行为与声明描述的核心功能明显不一致,属于显著描述-行为不匹配。

Content

No source excerpt is available for this finding.

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 manifest description forces a specific language/locale experience for users by presenting core skill behavior only in Chinese. The file does not offer an opt-in language choice or explain that the skill is intentionally limited to a Chinese-speaking audience or region-specific use case.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The operational guidance, invocation rules, safety notes, and examples are all written in Chinese, which effectively mandates one language for using the skill. There is no indication that users can choose another language, nor any documented justification for a Chinese-only locale constraint.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This JSON schema contains user-facing natural-language fields such as title and descriptions only in Chinese. Under the policy rule, forcing a specific language without user opt-in or a documented region-specific justification is a natural-language policy violation.

Content

No source excerpt is available for this finding.

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

Scanner excerpt · references/options.md (reported line 14)May include surrounding context.

node scripts/tiktok/search-cli.js --keyword <关键词> [--sort <排序>] [--time <时间>] [--limit <数量>]

text

| 参数        | 缩写 | 作用       | 可选值                                                                                      | 必填 | 默认 |
| ----------- | :--: | ---------- | ------------------------------------------------------------------------------------------- | :--: | :--: |
| `--keyword` | `-k` | 搜索关键词 | 2–100 字符;不可含 `< > " ' &`,不可含 http 链接                                            |  是  |  —   |
| `--sort`    | `-s` | 排序方式   | `0` 相关度 / `1` 最多点赞                                                                   |  否  | `0`  |

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The documentation explicitly supports bulk collection of TikTok author/profile metadata and comment data, including user identifiers and interaction data, but provides no privacy, consent, retention, or lawful-use guidance. In a social-media scraping skill, that omission increases the risk of improper collection, storage, or secondary use of personal data and may facilitate privacy abuse or noncompliant processing.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The manifest focuses on fetching TikTok records and outputting structured JSON for analysis. At L158-L160, the tool additionally writes the full results to disk via log.taskWrite, creating local stored records as a side effect that is not described in the stated capabilities.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The script persists the full output, including requested URL and returned comment data, via log.taskWrite(...). While the code logs progress for task creation and retrieval, it does not clearly disclose to the user that results will also be saved to disk, which is a file-write operation affecting user data handling.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The CLI writes fetched TikTok results to a local JSON file automatically after successful execution, and the returned data may include comment content, usernames, links, and engagement metadata. Persisting scraped social-media data to disk without an explicit opt-in, warning, or configurable output path increases the risk of unintended retention, local disclosure, and mishandling of potentially sensitive or regulated data.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The CLI writes full search results to a local log file after completion, and those results may include structured TikTok content metadata and comment data that can be sensitive in some environments. Because the file is written automatically without an explicit user warning, consent step, retention control, or redaction, users may unknowingly persist collected data on disk where it can later be accessed by other local users, backups, or log collectors.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

This code presents all user-facing error messages in Chinese, and the success/error strings later in the file are also Chinese-only. For a general utility module, forcing a single language without offering user choice or documenting a justified locale restriction is a natural-language policy violation under the stated rules.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The inline reserved-name comment and especially the success/error output strings are Chinese-only, reinforcing a fixed-language user experience. The file does not offer language opt-in or indicate that the skill is region-specific, so this violates the language/locale policy criteria.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

This code constructs HTTPS requests that send JSON payloads and a TOKEN header to a remote host, which falls under network/HTTP calls that transmit user or system data. While there is retry logging for failures, there is no confirmation prompt, user-facing notice, or warning comment/docstring here explaining that outbound data and credentials are being sent.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This code emits user-facing warning and info text only in Chinese ("警告..." and "已使用配置的私有TOKEN"). Because the file provides no indication of locale selection, fallback behavior, or user opt-in, it may violate language/locale policy requiring choice rather than forcing a specific language.

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 natural-language comments and user-facing error strings exclusively in Chinese, such as the validation messages printed to users. The file does not indicate that the skill is region-specific or provide any user language choice, which can violate a language/locale policy requiring opt-in or documented justification.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
91% confidence
Finding

The manifest and top-level documentation consistently describe this skill as "tiktok-record-organizer", but the sample output contract shows metadata.skill_name as "tiktok-creator-videos". This is an active documentation contradiction that could mislead integrators about which skill produced the output.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

This JSON schema contains user-facing natural-language fields such as title and description only in Chinese. Under the policy, forcing a specific language without user opt-in or a documented justification is a natural-language policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

The title and description are written only in Chinese, which can impose a specific language on users or downstream tooling without any visible opt-in or documented locale constraint. Under the policy rule, hard-coded language choices can be a natural-language policy issue when no user choice or justification is provided.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

This JSON schema contains all user-facing title and description strings in Chinese only, including the top-level title/description and property descriptions. For a generally applicable CLI input schema, this is a language/locale constraint without any visible opt-in, alternative locale, or documented regional limitation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

This JSON schema contains multiple natural-language strings such as the title and property descriptions exclusively in Chinese. Under the policy for all file types, forcing a specific language without opt-in or a documented region-specific justification is a natural-language policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

The schema title and description are written only in Chinese, which imposes a specific language choice in natural-language metadata. There is no indication that this locale constraint is optional, user-selectable, or justified as a region-specific tool.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

The document is for the "GUAIKEI TikTok社媒内容整理" / "tiktok-record-organizer" skill, but the example output embeds skill_name: "tiktok-creator-videos". This inline documentation contradicts the file's stated identity and can mislead integrators about which skill is actually being invoked.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
82% confidence
Finding

The function sends the user-provided keyword and related search parameters to a remote /api/tiktok/search/keyword endpoint. In this file there is no confirmation prompt, disclosure message, or explanatory comment indicating that user input will be transmitted over the network.

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