Back to skill

Security audit

guaikei-kuaishou-public-video-fetcher

Security checks across malware telemetry and agentic risk

Overview

The skill does what it claims, but it handles an API token and saved data in ways users should review before installing.

Review this skill before installing if you will use sensitive research targets, competitor links, or paid API credentials. Do not print or share `GUAIKEI_API_TOKEN`; use a presence-only check instead. Expect Kuaishou keywords, video/profile links, and returned public data to be sent to Guaikei and saved locally under `logs/` after successful runs.

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

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:267
Finding
API Token Disclosure Through Troubleshooting Command<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:267-271` **Vulnerability Type**: API credential exposure through terminal output **Risk Level**: Medium ### Vulnerable Code ```markdown **Q7. Command exits immediately without producing data?** > Troubleshooting: In most cases, `GUAIKEI_API_TOKEN` did not pass validation (see Q1). Before running, execute `echo $GUAIKEI_API_TOKEN` to confirm that the variable has been injected. ``` The original command in the Skill documentation is: ```bash echo $GUAIKEI_API_TOKEN ``` ### Technical Analysis The troubleshooting procedure instructs users or an AI agent to print the complete `GUAIKEI_API_TOKEN` value to standard output. Environment variables commonly contain API credentials and should be treated as secrets. Although the project code transmits this token only to the fixed HTTPS endpoint `www.guaikei.com`, the documented diagnostic command creates an unnecessary secondary disclosure channel. The resulting plaintext token may be retained in: - Agent tool-call output and conversation records - CI/CD job logs - Terminal recording or shell-session capture systems - Remote support sessions and screen sharing - Command output copied into issue reports or support messages Checking whether an environment variable exists does not require revealing its value. Therefore, this instruction exceeds the minimum access and disclosure necessary for troubleshooting. ### Attack Path 1. A user encounters a token-validation or startup error. 2. The user or executing agent follows the FAQ in `SKILL.md`. 3. The command `echo $GUAIKEI_API_TOKEN` writes the complete credential to stdout. 4. A terminal logger, CI system, agent transcript, screen observer, or support artifact captures the output. 5. An unauthorized party obtains the captured token. 6. The party reuses the token to submit requests to the Guaikei API within the permissions and quotas assigned to that credential. This finding does not provide local sys ...[truncated 931 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Replace the secret-printing command with a presence-only check: ```bash if [ -n "${GUAIKEI_API_TOKEN:-}" ]; then echo "GUAIKEI_API_TOKEN is configured" else echo "GUAIKEI_API_TOKEN is missing" fi ``` 2. If format diagnostics are required, validate the token without displaying it: ```bash case "${GUAIKEI_API_TOKEN:-}" in "") echo "GUAIKEI_API_TOKEN is missing" ;; *[!0-9A-Za-z_-]*) echo "GUAIKEI_API_TOKEN contains unsupported characters" ;; *) echo "GUAIKEI_API_TOKEN is present and has an accepted character format" ;; esac ``` 3. Do not include full tokens in terminal output, structured JSON, log files, issue reports, screenshots, or support communications. 4. Add an explicit warning to the documentation that API credentials must be redacted before sharing diagnostic output. 5. If a token has already been printed into a retained or shared log, revoke and rotate it through the service provider, then remove the exposed value from logs where feasible. 6. Consider server-side protections such as short token lifetimes, scoped permissions, quotas, anomaly detection, and rapid revocation. ]]>

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • 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
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (8)

Lp3

Medium
Category
MCP Least Privilege
Confidence
94% confidence
Finding
The skill requires and uses an environment variable (`GUAIKEI_API_TOKEN`) and sends user-supplied queries/links to a third-party API, but it does not declare explicit permissions beyond metadata hints. This creates a trust and review gap: users and platforms may not get a clear, enforceable signal that sensitive inputs and credentials are being used externally.

Description-Behavior Mismatch

Medium
Confidence
89% confidence
Finding
The CLI writes fetched comment data to a local JSON file after printing results, creating undisclosed persistence of potentially sensitive or regulated user-generated content. In this skill context, bulk comment retrieval for analysis increases the likelihood that stored data contains personal data, sentiment, or identifiers, so silent local retention expands privacy and data-handling risk beyond transient output.

Description-Behavior Mismatch

Medium
Confidence
84% confidence
Finding
The CLI persists fetched results to a local JSON file after completing a retrieval task, but this behavior is not disclosed in the visible user flow of this file. Silent local retention can expose scraped data, query targets, and timestamps to other local users, backup systems, or later exfiltration, especially on shared or managed environments.

Vague Triggers

Low
Confidence
85% confidence
Finding
Using the broad trigger term “短视频” can cause the skill to activate for unrelated short-video requests from other platforms, leading to unintended third-party data transmission or incorrect tool use. While not a direct exploit primitive, it weakens invocation scoping and increases the chance of privacy-impacting misfires.

Missing User Warnings

Low
Confidence
88% confidence
Finding
The main value proposition does not prominently warn that user-provided keywords, profile links, and video links will be sent to a third-party API service. This reduces informed consent and can surprise users who may assume processing is local, especially when links may contain sensitive research targets or business-intelligence context.

Missing User Warnings

Medium
Confidence
89% confidence
Finding
The README states that all task results are automatically saved under `logs/`, but it does not clearly warn users that queried keywords, profile URLs, video links, and potentially sensitive analysis outputs will be persisted locally. In a data-collection skill used for competitor monitoring and comment analysis, this can unintentionally expose business-sensitive research activity or collected public data to other local users, backups, or downstream tooling.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The script silently persists fetched comments to disk without explicit user warning or consent, which is a security and privacy issue because users may assume the tool only prints structured results. In a comment-scraping skill, this is more dangerous because comment datasets can be large, durable, and useful for profiling or unauthorized retention.

Missing User Warnings

Medium
Confidence
86% confidence
Finding
The tool writes result data to a local JSON file without an explicit warning in this file's help or status messaging. Even if the data is 'public,' persisted collections of creator content and comments can still be sensitive in aggregate and may violate operator expectations about ephemeral command output.

VirusTotal

64/64 vendors flagged this skill as clean.

View on VirusTotal

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:15