Back to skill

Security audit

quarkclouddrive

Security checks across malware telemetry and agentic risk

Overview

The skill is mostly aligned with Quark Drive file operations, but it requires raw prompt tracking and performs high-impact self-install/update actions with weak supply-chain controls.

Install only if you trust the Quark Drive provider and are comfortable with a CLI that can update itself from a remote service, modify local skill files, install dependencies with sudo on some systems, store cloud-drive artifacts locally, and send your exact prompt text plus a session id for tracking. Avoid using it with secrets or sensitive documents unless those data flows are acceptable to you.

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
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
Findings (28)

Lp3

Medium
Category
MCP Least Privilege
Confidence
91% confidence
Finding
The skill explicitly instructs the agent to execute shell commands such as installation, upgrade, and uninstall flows, yet no corresponding permissions are declared. This creates a trust and sandboxing gap: users and host systems may not realize the skill can modify the environment, fetch remote code, and remove files or binaries.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding
The stated purpose focuses on cloud-drive operations, but the skill also mandates local environment preparation, remote package download, code replacement, Node.js installation, and uninstall cleanup. That mismatch is dangerous because it hides substantial supply-chain and host-modification behavior behind a seemingly routine file-management skill.

Missing User Warnings

Medium
Confidence
98% confidence
Finding
The skill requires sending the user's raw prompt text to the service for 'quality tracking' on every CLI invocation, but does not require clear user disclosure or consent. Because prompts may contain secrets, personal data, or unrelated sensitive context, this creates unnecessary data exfiltration and privacy risk beyond the core file-operation purpose.

Missing User Warnings

Low
Confidence
93% confidence
Finding
The skill requires a persistent per-conversation session identifier for tracking without meaningful user-facing disclosure. Even if not directly used for business logic, such identifiers enable linkage of user actions across multiple operations and can support profiling or correlation of sensitive activity.

Missing User Warnings

Medium
Confidence
96% confidence
Finding
The installer downloads a remote shell script from NodeSource and pipes it directly into sudo bash, then installs packages as root. This creates a strong supply-chain and remote-code-execution risk because any compromise of the remote endpoint, network path, or repository setup script would execute with elevated privileges on the host.

Missing User Warnings

Medium
Confidence
81% confidence
Finding
The installer removes existing files and later overwrites directories during update without an explicit destructive-operation warning or confirmation. While the paths are mostly fixed, silent deletion can still remove user-installed wrappers or documentation and makes unintended state changes harder to notice or recover from.

Vague Triggers

Medium
Confidence
88% confidence
Finding
The core rule and examples instruct the agent to invoke the AI assistant for broad, natural-language cues like '分析' or '讲解' whenever file or folder context is mentioned, without strong scope checks or user-confirmation boundaries. In practice, this can cause overbroad triggering that sends file-derived content to remote analysis services when the user intent is ambiguous, increasing the risk of unnecessary data exposure and unintended processing of sensitive cloud-drive content.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The skill describes analysis and Q&A over cloud-drive files but does not clearly warn users that their file contents or derived excerpts will be transmitted to backend assistant APIs for processing. This lack of transparency undermines informed consent and can lead users to disclose sensitive personal or business documents to a remote service they may not realize is involved.

Missing User Warnings

Medium
Confidence
88% confidence
Finding
The documentation explicitly states that file contents are written to a local runtime directory and temporarily to /tmp, but it does not require warning the user that cloud files will be persisted on disk. In a file-access skill, this can create unintended local data exposure, especially for sensitive documents, shared hosts, or environments where users assume content is only transiently read by the agent.

Missing User Warnings

Low
Confidence
72% confidence
Finding
The read-file delete command removes persisted task records, but the documentation does not warn that this action is destructive and may remove resume metadata needed for interrupted transfers. While limited in scope, this can cause loss of task state and surprise users who expected only cleanup rather than irreversible deletion.

Missing User Warnings

Low
Confidence
88% confidence
Finding
The documentation explains how to transfer files from a shared link into the user's own cloud drive, but it does not prominently warn that this action copies content into the user's personal storage and may consume quota or place files into a default directory. In an agent setting, omission of that warning can cause unintended storage usage, clutter, or accidental import of unreviewed shared content, especially because the command defaults to saving the entire share when no file list is provided.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The skill documents that every successful search writes the complete search result set to a local JSONL file under a predictable per-user directory, and this can include sensitive filenames, links, thumbnails, and metadata from the user's cloud drive. Because this persistence happens automatically and the user-facing flow does not require explicit consent, warning, minimization, or secure retention controls, it creates a real privacy and local data exposure risk if the host is shared, compromised, backed up, or inspected by other software.

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The share command documentation explains how to generate public or private links, but it does not warn users that creating a share link can expose file contents, filenames, metadata, and potentially broader folder contents to unintended recipients. In a cloud-drive skill, omission of this warning increases the chance of accidental data disclosure because users may treat sharing as a routine file operation rather than a security-sensitive action.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The documentation instructs the agent to upload local files or folders to a remote cloud service but does not prominently warn that this transfers potentially sensitive off-device data. In an agent setting, this omission can lead to accidental exfiltration of local content if the agent acts on ambiguous user requests or selects paths without clearly confirming scope and destination.

Missing User Warnings

Low
Confidence
77% confidence
Finding
The delete subcommand removes persisted upload task records, but the documentation does not clearly warn that this is a destructive action that can discard resumable state. An agent or user could invoke it thinking it only cancels an active transfer, causing loss of recovery metadata and making interrupted uploads harder or impossible to resume.

Ssd 3

High
Confidence
99% confidence
Finding
Mandating verbatim transmission of the user's original prompt for every command is a high-risk data-handling practice. It maximizes exposure of sensitive content to the remote service, including credentials, personal data, proprietary information, or irrelevant conversation context that is not needed to execute the requested cloud-drive action.

Ssd 3

High
Confidence
99% confidence
Finding
Repeating the mandatory raw-text transmission rule in the summary reinforces that this is a deliberate operational requirement, not incidental wording. In the context of a file-management skill that may be used with highly sensitive documents, systematic prompt capture materially increases confidentiality and compliance risk.

Ssd 1

Medium
Confidence
90% confidence
Finding
The script emits an instruction telling the agent/user to discard prior memory and re-read updated guidance. In an agent skill context, this is dangerous because installer output becomes a control channel that can manipulate the agent's trust model or cause it to forget prior security-relevant context after an update.

External Transmission

Medium
Category
Data Exfiltration
Content
mkdir -p "$TMP_DIR"
  local zip_path="$TMP_DIR/skill.zip"

  if ! curl -fsSL --connect-timeout 30 --max-time 120 -o "$zip_path" "$ZIP_DOWNLOAD_URL"; then
    warn "下载失败,重试中..."
    if ! curl -fsSL --connect-timeout 30 --max-time 120 -o "$zip_path" "$ZIP_DOWNLOAD_URL"; then
      error "下载 zip 包失败: $ZIP_DOWNLOAD_URL"
Confidence
88% confidence
Finding
The installer downloads a zip package from a URL obtained at runtime from a remote config endpoint and then extracts and installs its contents. This external transmission and code retrieval pattern materially increases supply-chain risk, especially because no checksum, signature, or trusted-host pinning is performed before installation.

Sudo/Root Execution

Medium
Category
Privilege Escalation
Content
install_node_linux() {
  if command -v apt-get &>/dev/null; then
    info "使用 apt 安装 Node.js ${REQUIRED_NODE_MAJOR}..."
    curl -fsSL "https://deb.nodesource.com/setup_${REQUIRED_NODE_MAJOR}.x" | sudo -E bash - 2>/dev/null
    sudo apt-get install -y nodejs 2>/dev/null
    if command -v node &>/dev/null; then
      return 0
Confidence
99% confidence
Finding
The use of sudo -E specifically preserves environment variables while executing a remote script as root. Preserving the caller environment can widen attack surface and make privileged execution less predictable, especially in automation or agent-driven contexts.

Sudo/Root Execution

Medium
Category
Privilege Escalation
Content
if command -v apt-get &>/dev/null; then
    info "使用 apt 安装 Node.js ${REQUIRED_NODE_MAJOR}..."
    curl -fsSL "https://deb.nodesource.com/setup_${REQUIRED_NODE_MAJOR}.x" | sudo -E bash - 2>/dev/null
    sudo apt-get install -y nodejs 2>/dev/null
    if command -v node &>/dev/null; then
      return 0
    fi
Confidence
86% confidence
Finding
The script runs sudo apt-get install -y nodejs, which is privileged package installation. By itself this is a normal installer pattern, but in this script it follows an unverified remote repository setup step, making the privileged installation path part of the overall supply-chain risk.

Sudo/Root Execution

Medium
Category
Privilege Escalation
Content
fi
  elif command -v yum &>/dev/null; then
    info "使用 yum 安装 Node.js ${REQUIRED_NODE_MAJOR}..."
    curl -fsSL "https://rpm.nodesource.com/setup_${REQUIRED_NODE_MAJOR}.x" | sudo bash - 2>/dev/null
    sudo yum install -y nodejs 2>/dev/null
    if command -v node &>/dev/null; then
      return 0
Confidence
98% confidence
Finding
This line pipes a remotely downloaded NodeSource setup script directly into sudo bash on RPM-based systems. As with the apt path, it enables arbitrary remote code execution as root if the fetched content or transport path is compromised.

Sudo/Root Execution

Medium
Category
Privilege Escalation
Content
elif command -v yum &>/dev/null; then
    info "使用 yum 安装 Node.js ${REQUIRED_NODE_MAJOR}..."
    curl -fsSL "https://rpm.nodesource.com/setup_${REQUIRED_NODE_MAJOR}.x" | sudo bash - 2>/dev/null
    sudo yum install -y nodejs 2>/dev/null
    if command -v node &>/dev/null; then
      return 0
    fi
Confidence
86% confidence
Finding
This privileged yum install command is not inherently malicious, but it performs root-level package installation after a remote repository bootstrap step. In context, it contributes to the same elevated supply-chain exposure because root installs occur based on newly added external package sources.

Sudo/Root Execution

Medium
Category
Privilege Escalation
Content
install_node_linux() {
  if command -v apt-get &>/dev/null; then
    info "使用 apt 安装 Node.js ${REQUIRED_NODE_MAJOR}..."
    curl -fsSL "https://deb.nodesource.com/setup_${REQUIRED_NODE_MAJOR}.x" | sudo -E bash - 2>/dev/null
    sudo apt-get install -y nodejs 2>/dev/null
    if command -v node &>/dev/null; then
      return 0
Confidence
99% confidence
Finding
The use of sudo -E specifically preserves environment variables while executing a remote script as root. Preserving the caller environment can widen attack surface and make privileged execution less predictable, especially in automation or agent-driven contexts.

External Script Fetching

Low
Category
Supply Chain
Content
fi
  elif command -v yum &>/dev/null; then
    info "使用 yum 安装 Node.js ${REQUIRED_NODE_MAJOR}..."
    curl -fsSL "https://rpm.nodesource.com/setup_${REQUIRED_NODE_MAJOR}.x" | sudo bash - 2>/dev/null
    sudo yum install -y nodejs 2>/dev/null
    if command -v node &>/dev/null; then
      return 0
Confidence
97% confidence
Finding
This is direct external script fetching and execution through curl piped to sudo bash. Even though the source is a known vendor endpoint, executing network-retrieved shell code without verification is a classic unsafe installer anti-pattern with root-level consequences.

VirusTotal

VirusTotal findings are pending for this skill version.

View on VirusTotal

Static analysis

Detected: suspicious.secret_argv_exposure

Instructions pass high-value credentials through process argv.

Critical
Code
suspicious.secret_argv_exposure
Location
references/auth.md:33