Back to skill

Security audit

TikTok用户需求洞察与产品机会分析

Security checks for vulnerabilities and agentic risk

Overview

This is a disclosed, read-only TikTok public-data tool that uses an API token and saves result logs locally; I found no hidden execution or destructive behavior.

Install only if you are comfortable sending your API token and TikTok query or target URL to guaikei.com, and remember that fetched public comments and profile identifiers will be saved locally in temp logs unless you manually delete 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 (37)

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

声明描述的是一个面向 TikTok 公开数据采集与分析的业务技能,核心能力应涉及 TikTok 数据访问、搜索、抓取、整理与分析。但提供的代码片段仅是一个与业务无关的基础工具模块:解析命令行参数并生成帮助文本。它没有网络请求、没有 TikTok 资源访问、没有任何搜索/抓取/评论处理、也没有分析逻辑。因此该代码片段的实际行为与声明用途存在明显且重大的不一致,属于描述与实现不匹配。

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The declared description describes a data-collection and analysis skill with multiple concrete TikTok-facing capabilities. However, the supplied code chunk contains only generic UI/logging helper functions that write a banner and colored log lines to stderr/console. It does not access TikTok data, perform searches, fetch creator posts, scrape comments, analyze users, or output structured JSON. While this file could be a supporting utility within a larger system, evaluated on its own it does not match the declared functionality and therefore constitutes a description-behavior mismatch.

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
90% confidence
Finding

The manifest description is entirely in Chinese and presents the skill as operating in that language by default, with no indication that users may choose another language. The policy only allows a fixed language when there is explicit user choice or a clearly justified region-specific constraint, neither of which is stated here.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
86% confidence
Finding

The main skill instructions are entirely in Chinese and direct agent behavior in that language, but do not provide any opt-in, fallback, or user-preference handling for language or locale. This can violate organizational language/locale policy when the skill is invoked by users expecting another language.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The documentation says the skill has only three retrieval capabilities, yet it also states that every run automatically writes log files. Undocumented persistence can create sensitive-data retention risk because search keywords, target URLs/IDs, and timing metadata may be stored locally without clear user awareness or retention controls.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The package description understates the skill’s actual capabilities by advertising only keyword-based high-like video search, while the metadata and scripts expose broader collection of posts and comments. This kind of scope mismatch can mislead reviewers and users about the data-access surface, reducing informed consent and making privacy-impacting functionality easier to hide or overlook.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The user-facing invocation examples explicitly instruct users to '直接对 AI 说人话' and provide only Chinese example prompts, while the rest of the README is also Chinese-only. There is no opt-in, alternative locale guidance, or statement that the skill is intentionally limited to Chinese-speaking users for a region-specific purpose.

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
88% confidence
Finding

This documentation explicitly supports bulk collection of TikTok comments and user identifiers such as user_uid, user_nickname, and user_sec_uid without any privacy, retention, consent, or acceptable-use guidance. In a user-insight skill focused on market analysis, that omission increases the likelihood of over-collection, improper profiling, or downstream misuse of personal data at scale.

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 comment data to a local JSON file automatically after execution, without obtaining user consent or clearly warning that data will be persisted on disk. Because comment data may include usernames, links, and interaction metadata, this creates a privacy and data-retention risk: sensitive or regulated data can remain on shared machines, developer workstations, or CI environments where other users or processes may access it.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The script silently writes the full results payload to a local JSON file after execution, without clear user consent or warning. Because the output may contain scraped public profile data and metadata, this creates an unexpected data persistence risk and can expose collected data to other local users, backups, or later processes.

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-generated content, profile links, commenter data, and interaction metadata. In the context of a TikTok insight tool, silent persistence increases privacy and data-handling risk because operators may not realize scraped public data is being retained on disk and potentially exposed to other local users, backups, or downstream processes.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

This JavaScript file contains natural-language comments and user-facing error strings entirely in Chinese, including validation errors shown to the user. Under the policy rule for language/locale, forcing a specific language without opt-in or a documented justification is a natural-language policy violation.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
98% confidence
Finding

The file consistently identifies the skill as tiktok-user-insight in the manifest and title, but the example output hard-codes a different skill name. This is an active documentation contradiction that can mislead integrators about what component actually produced the output.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

The title and description fields are written only in Chinese, including the parameter descriptions, which imposes a specific language in the skill's natural-language interface. There is no indication that the skill is China-specific or that users can choose another language, so this appears to violate the language/locale policy criterion.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
86% confidence
Finding

This file contains user-facing natural-language strings such as the title and property descriptions exclusively in Chinese. Under the policy rule for language/locale, forcing a specific language without opt-in or documented regional scope can be 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
92% confidence
Finding

The title and descriptions in this schema are written only in Chinese, which can impose a fixed language on users or integrators without any opt-in or documented locale restriction. Under the policy rule for natural-language violations, this is a language/locale constraint that is not justified in the file.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

This JSON schema contains natural-language title and description fields entirely in Chinese, but it does not document that the skill is Chinese-only or offer any language/locale choice. Under the policy rule, forcing a specific language without opt-in can be a locale/language policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

The title and field descriptions are written entirely in Chinese, which constitutes a language-specific constraint in the skill's natural-language interface metadata. There is no indication that the skill is region-specific or that users can opt into another language, so this appears to violate the language/locale policy criterion.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
91% confidence
Finding

This JSON schema uses Chinese-only natural-language title and description strings, which can impose a specific language/locale on downstream users or tooling. The file does not indicate that Chinese is optional, user-selected, or required for a justified region-specific context.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

The package description is written only in Chinese, which imposes a specific language choice in user-facing metadata without indicating any opt-in, alternative locale, or region-specific constraint. Under the language/locale policy, this is a natural-language policy concern because the skill does not offer a language choice or document why a Chinese-only description is required.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
96% confidence
Finding

L114-L116 的统一输出示例声明 skill_name 为 tiktok-creator-videos,而当前清单上下文中的技能名称是 tiktok-user-insight。这不是单纯信息缺失,而是文档中对技能标识的直接陈述与当前技能实际身份不一致,容易误导调用方对输出来源和能力范围的理解。

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 provided URL and authentication token to an external API via requestApi, which is a network operation involving potentially sensitive user or system data. In this file, there is no confirmation prompt, user-facing log/print, or explanatory comment/docstring disclosing that this transmission occurs.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
79% confidence
Finding

This GET request transmits the token, URL, and limit parameters to a remote API endpoint, which constitutes a network operation involving user-provided data. The file does not include a visible confirmation, print/log disclosure, or explanatory comment/docstring to warn users about this behavior.

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