Back to skill

Security audit

Guaikei Kuaishou Shop Data Fetcher

Security checks across malware telemetry and agentic risk

Overview

This skill appears to do what it claims: fetch public Kuaishou data through a declared API and save returned results locally.

Before installing, be comfortable sending Kuaishou search terms, profile or video URLs, and your API token to guaikei.com. Also treat the local logs/ directory as potentially containing full collected results and query context; delete or protect those files in shared workspaces.

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

Note
Location
scripts/utils/log.js:24
Finding
Automatic Plaintext Retention of Collected Kuaishou Data## Vulnerability Details **File Location**: `scripts/utils/log.js:24-34`; invoked by `scripts/kuaishou/search-cli.js:208-211`, `scripts/kuaishou/post-cli.js:183-186`, and `scripts/kuaishou/comment-cli.js:163` **Vulnerability Type**: Automatic plaintext storage with insufficient access and retention controls **Risk Level**: Low ### Vulnerable Code ```js const outputFilename = path.join( path.dirname(__filename), "..", "..", "logs", safeFilename, ); try { await fs.promises.mkdir(path.dirname(outputFilename), { recursive: true }); await fs.promises.writeFile(outputFilename, content); utils.printSuccess(` → Saved to ${outputFilename}`); } catch (error) { utils.printError(`Log write failed: ${error.message}`); } ``` A representative invocation from `scripts/kuaishou/search-cli.js` is: ```js await log.taskWrite( `${startTime}_${keyword}_${sort}_${time}_${duration}_${limit}_search.json`, JSON.stringify(finalOutput, null, 2), ); ``` Equivalent result persistence occurs in the post and comment CLI scripts. ### Technical Analysis Every successful collection operation automatically writes the complete structured API response to the project’s `logs/` directory. The implementation does not: - Ask the user to opt into persistence. - Specify restrictive directory or file permissions. - Apply a retention period or remove old results. - Minimize or redact personally attributable fields returned in comments, creator profiles, or posts. - Prevent search terms from being included in filenames. The exact effective permissions depend on the process umask and host filesystem. Consequently, the files may be accessible to other local users or processes in permissively configured environments. Although the collected information is described as public Kuaishou data, the retained datasets can still reveal research interests, targeted creators, comments, identifiers, and consolidated behavioral information. The API token is not included in the saved result ...[truncated 1457 chars]
Remediation
## Remediation Suggestions 1. Make result persistence opt-in through an explicit option such as `--output` or `--save`. 2. Create the storage directory with owner-only permissions, such as mode `0700`. 3. Create result files with mode `0600`, using exclusive creation where appropriate to prevent accidental replacement. 4. Store logs in a user-designated data directory rather than inside the installed Skill package. 5. Use random or opaque filenames instead of embedding search keywords or target identifiers. 6. Add configurable retention limits and automatic expiration or deletion. 7. Minimize saved content and allow users to redact creator, commenter, URL, and identifier fields. 8. Clearly document that complete results are stored locally, including their location and retention behavior. 9. Consider disabling persistence by default in shared, CI, sandboxed, or multi-user environments.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (1)

Missing User Warnings

Low
Confidence
88% confidence
Finding
The README states that all task results are automatically saved to `logs/`, which can retain scraped content, URLs, and analysis outputs on disk without any stated retention, redaction, or access-control guidance. In a data-collection tool, this increases the chance of unintended local disclosure or over-retention of third-party data, even if the source data is public.

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