Back to skill

Security audit

guaikei-douyin-video-comments-to-sentiment-data

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly matches its public Douyin data-collection purpose, but it needs review because it handles its API token unsafely and its runtime auth errors contradict the documentation.

Review before installing. Use this only for public Douyin research, assume your keywords, Douyin URLs, and fetched results are sent to www.guaikei.com and that successful search/post/comment results are saved locally under logs. Use a limited token if possible and avoid sensitive research terms. Be aware that authentication failures may show vendor contact information despite the skill claiming neutral runtime errors.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
Findings (2)

T01 · Skill Instruction Hijacking

Error
Location
src/utils/request.js:49
Finding

Authentication Error Paths Inject Promotional Contact Information into Agent Output

Content
View full analysis
process.exit(exitCode), ); return; } ``` The non-English strin ...[truncated 2874 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
src/utils/request.js:104
Finding

API Credential Is Transmitted in URL Query Parameters

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • 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 (43)

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The skill states that it automatically writes logs to a local logs/ directory, but local filesystem write capability is not declared in the visible permission model. Logging scraped data and user-supplied keywords/URLs can create unintended data retention, expose sensitive research activity, and increase host-side impact if the execution environment assumes a read-only or no-write skill.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The skill states that it automatically writes logs to a local logs/ directory, but local filesystem write capability is not declared in the visible permission model. Logging scraped data and user-supplied keywords/URLs can create unintended data retention, expose sensitive research activity, and increase host-side impact if the execution environment assumes a read-only or no-write skill.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The skill states that it automatically writes logs to a local logs/ directory, but local filesystem write capability is not declared in the visible permission model. Logging scraped data and user-supplied keywords/URLs can create unintended data retention, expose sensitive research activity, and increase host-side impact if the execution environment assumes a read-only or no-write skill.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill states that it automatically writes logs to a local logs/ directory, but local filesystem write capability is not declared in the visible permission model. Logging scraped data and user-supplied keywords/URLs can create unintended data retention, expose sensitive research activity, and increase host-side impact if the execution environment assumes a read-only or no-write skill.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
90% confidence
Finding

The skill explicitly depends on an environment variable (GUAIKEI_API_TOKEN) but does not declare any tool scope such as permissions or allowed-tools. This creates a transparency and least-privilege problem: the runtime may grant broader access than users or orchestrators expect, and secret-dependent behavior is not formally disclosed in the manifest.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill instructs broad triggering even when the user does not mention Douyin, which can cause over-invocation of a scraping/data-collection capability in contexts where the user did not clearly request this platform. This increases the chance of collecting or processing external data unexpectedly, confusing user intent boundaries and potentially causing unauthorized or unnecessary outbound activity.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The natural-language trigger mapping uses broad phrases like '搜索 / 搜一下 / 找 …', '今天有什么热点', and similar everyday expressions to route requests into data-collection commands. In an agent setting, this can cause unintended skill activation when a user is speaking generally rather than explicitly requesting Douyin scraping, leading to unexpected external API calls, data retrieval, and token consumption.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The intent recognition priority rules rely on generic trigger words such as '热搜', '热点', '搜索', and '找 + 关键词' with limited scope constraints. Because this skill performs external retrieval against a third-party service, overly broad matching increases the risk of misrouting unrelated requests into scraping/search actions, causing unintended outbound requests and potentially exposing query content to the external provider.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

This file contains natural-language strings such as the module description and retry log message exclusively in Chinese. Under the policy, 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.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
79% confidence
Finding

The manifest frames the skill as operating on public Douyin data and specifically excludes login-protected private data. Reading process.env.GUAIKEI_API_TOKEN introduces credential handling that is not disclosed in the stated purpose and is not obviously required from the user's perspective for a public-data analysis skill.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The CLI writes fetched comment data to a local JSON file automatically after displaying results, which creates a persistent copy of scraped data without explicit user consent or any retention controls. In a read/analysis-oriented public-data skill, silent persistence increases the risk of unintended data accumulation, disclosure through shared workspaces, or downstream misuse of comment content.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The program stores comment results to a local file without a user-facing warning, confirmation, or explicit output flag. Even if the source is public, comments may contain personal data, and silent local storage can violate user expectations, create privacy/compliance issues, and leak data to other users or processes on the same machine.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

This code contains multiple user-facing strings entirely in Chinese, including status/error messages and comments describing the command behavior. Because the skill does not provide any user opt-in or alternate locale handling, it appears to enforce a specific language, which matches the language/locale policy violation criteria.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The CLI writes the full fetched result set to a local JSON file automatically, without an explicit opt-in, path control, or warning to the operator. Because this skill collects public Douyin post/comment-related data that may still contain sensitive business research output or personal data in comments, silent persistence increases the risk of unintended local data exposure, retention, or later leakage from shared workstations and CI/agent environments.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The code emits all user-facing error strings in Chinese, and the success/error messages later in the file are also Chinese-only. This enforces a specific language for the skill's interaction without any visible opt-in, fallback, or documented region-specific justification, which matches the locale policy violation criteria.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The authentication error string is written only in Chinese and directs the user to a specific support contact, which imposes a language choice without offering alternatives. This can violate language/locale policy when the skill is not explicitly documented as Chinese-only or region-specific.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

This code constructs and sends outbound HTTPS requests using both query parameters and JSON request bodies, which can transmit user or system data to an external service. Within this file, there is no confirmation prompt, user-facing warning, or disclosure indicating that data will be sent over the network.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

This code emits user-facing warning and info strings only in Chinese, which can violate language/locale policy when the skill is not explicitly documented as China- or Chinese-only. There is no opt-in, fallback, or indication that the skill is region-specific, so users may be forced into a language they did not choose.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

This JavaScript file contains user-facing validation and result messages in Chinese only, such as error strings and formatted output labels. The stated policy flags language or locale constraints when a skill forces a specific language without user opt-in, and this file does not indicate any user choice or justified region-specific limitation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The result formatter builds the entire user-visible response in Chinese, including headings and field labels like publisher, publish time, link, and counts. Because the policy applies to natural-language content in code string literals, this is a locale/language restriction unless the skill explicitly provides opt-in or documents a justified regional scope.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
96% confidence
Finding

The phrase '纯中文界面' indicates a fixed language/locale constraint. Because the file does not present this as an opt-in choice or clearly justify it as a region-specific compliance limitation, it is a natural-language locale policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

This JSON schema contains user-facing title and description fields entirely in Chinese, including parameter descriptions, with no indication that the skill is China-specific or that users can opt into another language. That can violate a language/locale policy when the skill is not explicitly documented as region-scoped.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

This JSON schema contains human-readable title and description fields exclusively in Chinese, including field descriptions that users or downstream operators may rely on. The policy calls for flagging language or locale constraints when a skill forces a specific language without user opt-in, and no alternative language option or justification is provided here.

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 uses Chinese-only natural-language titles and descriptions throughout, such as the title and field descriptions. Because SQP-3 applies to all file types and covers language/locale policy violations, this can be considered a forced locale choice when no opt-in or justification is provided.

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 includes user-facing title and description fields only in Chinese, which imposes a specific language on users without any opt-in or alternative locale. Under the policy, language restrictions should either offer user choice or be clearly documented as intentionally region-specific.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.