Back to skill

Security audit

guaikei-douyin-pull-video-comments

Security checks for vulnerabilities and agentic risk

Overview

This Douyin data skill mostly matches its stated purpose, but it needs review because it sends tokens and targets to a third-party API, saves fetched data automatically, and runtime auth errors contradict its own no-promotion rule.

Install only if you are comfortable sending Douyin search terms, target URLs, and your GUAIKEI token to the GUAIKEI service. Treat the token as sensitive, rotate it if exposed, and review or delete files under the skill's logs directory because fetched comments and profile/video data are saved there by default.

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/token.js:23
Finding

Runtime Advertising and User-Facing Output Hijacking During Authentication Failures

Content
View full analysis
process.exit(exitCode), ); ``` ### Technical Analysis The declared behavior in `SKILL.md` requires authentication failures to produce a neutral error and explicitly prohibits website links, contact details, and marketing language. The implementation contradicts that policy in two independent runtime paths: 1. A missing or locally malformed token prints a promotional website address to stderr. 2. ...[truncated 1927 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

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

API Authentication Token Transmitted in URL Query Strings

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 (47)

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The skill states that logs are automatically written to a local logs/ directory, but the skill metadata does not clearly declare filesystem write scope. Undeclared persistent writes in an agent skill are security-relevant because they create data retention and local artifact risks beyond the user’s immediate request.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The skill states that logs are automatically written to a local logs/ directory, but the skill metadata does not clearly declare filesystem write scope. Undeclared persistent writes in an agent skill are security-relevant because they create data retention and local artifact risks beyond the user’s immediate request.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill states that logs are automatically written to a local logs/ directory, but the skill metadata does not clearly declare filesystem write scope. Undeclared persistent writes in an agent skill are security-relevant because they create data retention and local artifact risks beyond the user’s immediate request.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill states that logs are automatically written to a local logs/ directory, but the skill metadata does not clearly declare filesystem write scope. Undeclared persistent writes in an agent skill are security-relevant because they create data retention and local artifact risks beyond the user’s immediate request.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
85% confidence
Finding

The skill declares use of the environment variable GUAIKEI_API_TOKEN but does not declare an explicit tool scope or permission boundary for environment access. In an agent setting, missing capability declarations weaken least-privilege controls and can cause the skill to be invoked with broader access than users or orchestrators expect.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The description says the skill should be used even when the user does not mention '抖音', which makes the trigger surface overly broad. In an agent router, this can cause the skill to activate for generic research or analysis requests and unnecessarily expose external data access, token usage, and logging behavior in contexts where the user did not intend Douyin-specific handling.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The implicit trigger examples such as competitor research, finding popular content, or asking what is trending overlap with common cross-platform analytical tasks. This increases the chance of unintended invocation and may route unrelated user requests into a skill that consumes a platform token, accesses external services, and writes local logs.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The environment section states "纯中文界面," which imposes a specific language/locale requirement. The file does not offer user opt-in, alternative language support, or a clear region-specific compliance justification for this restriction.

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 entirely in Chinese (L04-L05, L12, L16). 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.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

This JSON schema contains user-facing title and description strings entirely in Chinese, including field descriptions. The file does not indicate that the skill is region-specific or provide any user opt-in for the enforced language, which can violate a language/locale policy requiring choice or explicit justification.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The schema defines inputs for retrieving a Douyin creator homepage or SEC_UID and a work-count limit, but the skill metadata claims broader capabilities including comment retrieval, hotlist tracking, and content search. This mismatch can cause the agent or user to invoke the wrong operation, leading to unintended data collection, incorrect tool routing, or misleading security assumptions about what data the skill accesses.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

This JSON schema uses Chinese-only titles and descriptions throughout, such as the title and field descriptions, which imposes a specific language on users or integrators without any visible opt-in or alternative locale. Under the stated policy, forcing a language without user choice is a natural-language policy violation.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The README explicitly states that scraped results are automatically exported to JSON logs, including comments and content data, but it does not prominently warn users that potentially sensitive collected data will be stored locally by default. This creates a real privacy and data-handling risk because operators may unknowingly retain personal data or sensitive monitoring outputs on disk where they can be accessed, copied, or mishandled.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
83% confidence
Finding

The README requires users to obtain a GUAIKEI_API_TOKEN from an external website, which implies requests are sent to a third-party service, but it does not clearly disclose that searched keywords, profile URLs, video URLs, and comment targets will be transmitted off-box. This is dangerous because users may assume the skill runs locally while actually sending potentially sensitive research targets or monitoring activity to an external provider.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
86% confidence
Finding

The changelog and feature descriptions are written in Chinese throughout, and there is no natural-language indication that users may choose another language or that the skill is intentionally limited to a Chinese-language audience. Under the policy rule, forcing a specific language without opt-in or justification is a language/locale policy concern.

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 token and user-provided video URL to an external API via requestApi, which is a network operation involving potentially sensitive user or system data. Although the JSDoc describes parameters and errors, it does not warn users that their token and URL are transmitted off-process, and there is no confirmation prompt or user-facing logging in this file.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
84% confidence
Finding

This code performs outbound API requests in both createSearchTask and getSearchTask, sending a skill token and user-provided search keyword to remote endpoints. Although the functions are documented for developers, there is no confirmation prompt, user-facing log, or explicit disclosure in this file that user input and token data are transmitted over the network.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The command automatically writes fetched comment data to a local JSON file without any opt-in, path control, retention policy, or sensitivity warning. In multi-user, shared-workspace, or managed-agent environments, this can cause unintended persistence of scraped data, increasing exposure of potentially sensitive content and creating data-handling risk beyond the immediate user request.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

This CLI is explicitly documented as '获取抖音博主作品列表' and the implementation creates and retrieves a post task, returning '作品' results rather than comments. Given the skill is named 'pull-video-comments' and the manifest frames the capability set around Douyin data tasks including comments, this file implements a distinct creator-post-listing function rather than comment pulling.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

Scraped results are written to disk silently after successful execution, with no clear warning or consent flow where persistence occurs. In a data-collection skill, silent local logging makes accidental disclosure and over-collection more likely, especially on shared hosts, CI runners, or developer workstations.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The authentication failure message is hardcoded in Chinese and includes remediation guidance and contact instructions only in that language. This imposes a specific language on users without opt-in or any evident locale selection, 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
88% confidence
Finding

This code performs outbound HTTPS GET and POST requests and sends URL parameters plus JSON request bodies to a remote host via constants.BASE_URL. The file includes validation and retry logging, but no user-facing warning, confirmation, or comment/docstring disclosing that user or system data may be transmitted over the network.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

This JSON schema contains user-facing title and description text entirely in Chinese, including the top-level metadata and field descriptions. Because the file does not document that the skill is China-specific or offer any language/locale choice, it may violate a language policy requiring opt-in or justified locale constraints.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
91% confidence
Finding

The schema's title and descriptions are written only in Chinese (for example at L04-L05, L12, and L16), which imposes a specific language on users or downstream tooling without indicating that the skill is China-specific or that other locales are supported. This is a natural-language policy concern because the file provides user-facing metadata but does not offer language choice or justify the locale restriction.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

The schema metadata says "抖音博主作品获取 - API出参" and "抖音实时获取博主作品", which suggests an API response for fetching a creator's works, typically implying a collection/list response. However, the defined properties model one individual video object with fields like aweme_id, desc, music_title, and video_url, and no list/container structure is present.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.