Back to skill

Security audit

Qiniu Upload

Security checks for vulnerabilities and agentic risk

Overview

This skill does what it says: it uploads a user-specified local file to Qiniu Cloud and returns a public or signed URL, with no hidden persistence or unrelated behavior found.

Install only if you intend agents to upload selected local files to your Qiniu bucket. Use private mode for sensitive content, keep Qiniu keys out of source control and logs, and confirm the exact file path before running the upload command.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
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
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (7)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 37)May include surrounding context.

md
node scripts/upload.js --file-path "E:\\audio\\sample.mp3" --prefix audio

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
94% confidence
Finding

The skill requires environment secrets and performs networked uploads, but it does not declare an explicit tool scope such as permissions or allowed-tools. This increases the chance the agent can invoke the skill in broader contexts than intended, making secret-backed exfiltration of local files to cloud storage easier if the skill is selected implicitly.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The description is broad enough to match many tasks involving files, URLs, or downstream processing, which can cause the agent to select this upload skill when the user did not specifically request external publication. In this skill’s context, overbroad routing is risky because invocation results in data leaving the local environment and becoming externally reachable.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The documentation says the skill returns publicly accessible URLs, but it does not prominently warn that uploading may expose the full contents of local files to external parties or downstream services. Because this skill is specifically designed to turn local paths into cloud-hosted URLs, missing disclosure materially increases the risk of unintended data exposure, especially for sensitive audio, documents, or videos.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

This markdown file documents setting QINIU_ACCESS_KEY and QINIU_SECRET_KEY, which are sensitive credentials, but it provides no user warning about secrecy, safe storage, or avoiding committing them to shell history or shared files. For markdown files, SQP-2 applies when the skill description omits warnings about behaviors that could affect privacy or system integrity.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The script reads an arbitrary local file and POSTs it to a Qiniu upload endpoint, then returns a public or signed URL, but the code itself provides no user-facing confirmation, allowlist, or warning before exfiltrating local content. In an agent/skill context, this is risky because a downstream prompt or user could cause sensitive local files to be uploaded externally with little friction, especially since the resulting URL may be publicly accessible.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
81% confidence
Finding

The script reads access credentials and service configuration from environment variables, including QINIU_ACCESS_KEY and QINIU_SECRET_KEY. There is no nearby comment, docstring, or user-facing message explaining that sensitive credentials will be consumed by the script.

Content

No source excerpt is available for this finding.

Static analysis

Detected: suspicious.env_credential_access

Environment variable access combined with network send.

Critical
Code
suspicious.env_credential_access
Location
scripts/upload.js:24