Back to skill

Security audit

guaikei-douyin-trend-signal-detector

Security checks for vulnerabilities and agentic risk

Overview

This Douyin data skill mostly matches its stated purpose, but it needs review because it stores fetched data locally, sends its API token in URLs, and has undeclared promotional authentication-error output.

Install only if you are comfortable sending Douyin keywords, profile/video URLs, and your GUAIKEI API token to the provider's service. Treat the generated logs as retained copies of collected public data, including comments and user identifiers, and review or delete them as needed. The publisher should remove runtime promotional contact output and move token authentication out of URL query strings before this is considered low-risk.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
Findings (2)

other

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

Hardcoded Promotional Contact Information in Authentication Error Output

Content
View full analysis
process.exit(exitCode), ); return; } ``` ### Technical Analysis The Skill documentation explicitly states that authentication failures must produce only neutral error messages and must not include contact details, links, or promotional content. The implementation violates that declared behavior by embedding a fixed WeChat contact number in the HTTP 401/403 error path. Because the CLI copies `error.message` directly into structured stdout and also prints it to stderr, the promotional message becomes visible to both the invoking Agent and the end user. This is deterministic behavior triggered by an ordinary authentication failure, rather than content returned dynamically by the upstream service ...[truncated 1422 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

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

API Token Exposed 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 (52)

Tp4

High
Category
MCP Tool Poisoning
Confidence
93% confidence
Finding

The skill states that it writes output files automatically into logs/, which contradicts the earlier '最小权限' claim of not writing to the filesystem except logs and expands the data-handling surface. Persisting query parameters and fetched data locally can leak sensitive research targets, video URLs, or token-adjacent operational context if the log directory is accessible or retained too long.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The skill states that it writes output files automatically into logs/, which contradicts the earlier '最小权限' claim of not writing to the filesystem except logs and expands the data-handling surface. Persisting query parameters and fetched data locally can leak sensitive research targets, video URLs, or token-adjacent operational context if the log directory is accessible or retained too long.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
92% confidence
Finding

The skill states that it writes output files automatically into logs/, which contradicts the earlier '最小权限' claim of not writing to the filesystem except logs and expands the data-handling surface. Persisting query parameters and fetched data locally can leak sensitive research targets, video URLs, or token-adjacent operational context if the log directory is accessible or retained too long.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
88% confidence
Finding

The skill states that it writes output files automatically into logs/, which contradicts the earlier '最小权限' claim of not writing to the filesystem except logs and expands the data-handling surface. Persisting query parameters and fetched data locally can leak sensitive research targets, video URLs, or token-adjacent operational context if the log directory is accessible or retained too long.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The skill states that it writes output files automatically into logs/, which contradicts the earlier '最小权限' claim of not writing to the filesystem except logs and expands the data-handling surface. Persisting query parameters and fetched data locally can leak sensitive research targets, video URLs, or token-adjacent operational context if the log directory is accessible or retained too long.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill states that it writes output files automatically into logs/, which contradicts the earlier '最小权限' claim of not writing to the filesystem except logs and expands the data-handling surface. Persisting query parameters and fetched data locally can leak sensitive research targets, video URLs, or token-adjacent operational context if the log directory is accessible or retained too long.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill states that it writes output files automatically into logs/, which contradicts the earlier '最小权限' claim of not writing to the filesystem except logs and expands the data-handling surface. Persisting query parameters and fetched data locally can leak sensitive research targets, video URLs, or token-adjacent operational context if the log directory is accessible or retained too long.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The skill states that it writes output files automatically into logs/, which contradicts the earlier '最小权限' claim of not writing to the filesystem except logs and expands the data-handling surface. Persisting query parameters and fetched data locally can leak sensitive research targets, video URLs, or token-adjacent operational context if the log directory is accessible or retained too long.

Content

No source excerpt is available for this finding.

Vague Triggers

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The trigger guidance explicitly says the skill should fire even when the user does not mention Douyin and for broad multi-step requests like '帮我调研一下这个赛道'. Overly broad activation can cause unintended collection requests, wrong-platform scraping behavior, or automatic use of a tokenized external API in contexts where the user did not clearly consent to platform-specific data retrieval.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
92% confidence
Finding

The skill explicitly depends on the environment variable GUAIKEI_API_TOKEN, but the manifest does not declare any tool scope or permission boundary for environment access. Missing explicit scope makes the skill's privilege requirements opaque and increases the chance of overbroad execution context or accidental secret exposure in future implementations.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The line "纯中文界面" states a hard language constraint, but the file does not offer the user a language choice or describe this as an opt-in regional mode. This is a natural-language locale restriction that can violate language policy when presented as a default requirement.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The natural-language strings in the schema are entirely in Chinese, and there is no indication that the skill is region-specific or that users can opt into another language. This may violate language/locale policy because it imposes a specific language without documented justification or choice.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The manifest context says this skill should be used when a user wants Douyin/video/topic data and explicitly says it does not provide growth-operations advice or handle other platforms. The package description goes beyond neutral data retrieval/analysis and markets the tool for '短视频营销','竞品分析','爆款内容策划' and '流量追踪', which shifts the skill toward strategic marketing and competitive-intelligence use not stated in the manifest.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The README promotes scraping Douyin videos, authors, comments, and hot-list data and notes later that JSON logs are automatically saved locally, but it does not clearly warn users up front that scraped data—including potentially sensitive comment content—will be persisted to disk. This creates a privacy and data-governance risk because operators may collect and retain personal data unintentionally, increasing exposure through local compromise, sharing, or misuse of logs.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The documented functionality exceeds the manifest’s narrower framing of trend detection and data retrieval by adding generic search and batch author-work scraping. When documentation and declared scope diverge, agents may invoke the skill for broader data acquisition than intended, which can facilitate policy bypass, unauthorized collection patterns, or misuse of platform data.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The changelog describes capabilities beyond the skill’s declared purpose, including a general Douyin search API and bulk retrieval of competitor authors’ published works. This creates scope drift that can enable broad scraping or surveillance-style use not clearly disclosed by the manifest, increasing the risk of misuse and unsafe downstream agent behavior.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
81% confidence
Finding

This code sends a skill token and user-supplied video URL to external API endpoints via requestApi, which is a network operation involving potentially sensitive data. Although the functions have developer-facing docstrings, there is no user-facing confirmation, warning, or visible disclosure in this file about transmitting that data.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
74% confidence
Finding

All natural-language comments and operation labels in this file are written only in Chinese, including strings such as module descriptions and task labels. In the absence of any indication that the skill is region-specific or that users can opt into this locale, this may reflect a language/locale policy issue.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The CLI persists retrieved comment data to a local JSON file after completing the request, which creates data retention beyond the apparent on-demand fetch behavior of the skill. Even if the comments are public, silent local storage increases privacy, compliance, and accidental disclosure risk because collected data remains on disk after execution.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

Multiple user-visible strings in this file, including status and error messages, are written only in Chinese. The file does not offer a language selection mechanism or document a region-specific justification, which conflicts with the policy against forcing a specific language without user opt-in.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
86% confidence
Finding

The manifest describes a skill for answering Douyin trend/data questions such as checking reactions, popularity, or hot-topic signals. This CLI explicitly creates and retrieves a '作品列表' task and then persists the full results to disk, which is a broader content-collection behavior than the manifest's narrowly framed analytics-oriented purpose.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The code reads process.env.GUAIKEI_API_TOKEN, which is a credential access operation covered by the missing-warning rule for code files. Although the token is used for the skill's purpose, this file does not provide a visible prompt, log, or explanatory comment/docstring warning the user that an environment-stored API credential will be used.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
82% confidence
Finding

The calls to post.createPostTask and post.getPostTask are API operations that transmit the supplied Douyin URL/sec_uid and limit to an external service, but this file does not explicitly warn the user about that transmission. The status messages only say that the task is being created and fetched, not that user-provided data is sent over the network.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The code persists the full output, including requested URL and retrieved post results, to a local JSON file without any retention controls, user disclosure, or opt-in. This creates an unnecessary data-at-rest exposure surface: anyone with filesystem access, backups, or adjacent tooling may access creator data and request metadata beyond the immediate user session.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The CLI writes full search results to a local JSON log file named with the user-supplied keyword, without an explicit warning or consent at the point of write. In this skill context, search queries and returned Douyin data may contain sensitive business research terms or personal data about creators/videos, so silent persistence increases privacy and local data exposure risk, especially on shared systems or CI/agent environments.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.