Back to skill

Security audit

知识产权资质与招投标尽调

Security checks across malware telemetry and agentic risk

Overview

The skill has a clear Cue due-diligence purpose, but it asks users to install and run an unpinned external Python runner with API credentials.

Review this before installing. Use only a trusted, pinned version of the Cue runner, verify its source, protect ~/.cue/config.json and CUE_API_KEY as secrets, and avoid passing untrusted company names through shell-built commands.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (2)

T08 · Insecure Dependencies

Error
Location
SKILL.md:60
Finding
Unpinned and Unverifiable External Runner Execution## Vulnerability Details **File Location**: `SKILL.md`, lines 60-79 **Vulnerability Type**: Unpinned external executable dependency **Risk Level**: High ### Vulnerable Code ```markdown Runner source: [GitHub - sensedeal/cue-skills](https://github.com/sensedeal/cue-skills) ([Gitee mirror](https://gitee.com/sensedeal/cue-skills)). ``` ```bash python3 ~/.cue/cue-skills/cue-research/scripts/research_run.py \ --query "Target company intellectual property, qualification, and bidding due diligence: patents, software copyrights, trademarks, qualifications and licenses, bidding, and financing records" \ --template-id template_Sze2NG \ --output ~/cue-reports/$(date +%Y-%m-%d-%H%M)-ip-bidding-check.md ``` ### Technical Analysis The Skill package contains only `SKILL.md`; the executable `research_run.py` is not included and therefore could not be audited. The documentation directs users to obtain a runner from external GitHub or Gitee repositories and then execute it locally. It does not specify an immutable commit, signed release, cryptographic checksum, or other integrity-verification mechanism. The documentation also refers to a bundled one-click installation script, but the corresponding code block is empty. Consequently, the provenance and exact version of the executable runner cannot be established from the audited package. This creates a supply-chain boundary in which the implementation executed by the user can differ from the implementation originally reviewed. A mutable repository branch, compromised repository, compromised mirror, or malicious future update could introduce arbitrary Python behavior. ### Attack Path 1. An attacker compromises the external runner repository, its distribution account, or one of the referenced mirrors. 2. The attacker modifies `research_run.py` or an installation component to include malicious behavior. 3. A user obtains or updates the runner according to the Skill documentation ...[truncated 1062 chars]
Remediation
## Remediation Suggestions 1. Bundle the runner source in the Skill package so that the reviewed code is the code users execute. 2. If external distribution is unavoidable, reference an immutable commit hash or versioned release rather than a mutable branch. 3. Publish and verify a SHA-256 or stronger digest before executing downloaded content. 4. Sign releases and document mandatory signature verification using a pinned maintainer key. 5. Ensure the GitHub and Gitee artifacts are reproducibly identical; do not silently fall back between unverified mirrors. 6. Add the missing installation procedure and make every network retrieval and verification step explicit. 7. Run the external component with restricted filesystem access, a minimal environment, and outbound network access limited to the documented Cue API endpoints. 8. Document precisely which local files, credentials, and network destinations the runner accesses.

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:75
Finding
Potential Shell Command Injection Through User-Controlled Query Substitution## Vulnerability Details **File Location**: `SKILL.md`, lines 75-79 **Vulnerability Type**: Unsafe interpolation of user-controlled input into a shell command **Risk Level**: High ### Vulnerable Code ```bash python3 ~/.cue/cue-skills/cue-research/scripts/research_run.py \ --query "Target company intellectual property, qualification, and bidding due diligence: patents, software copyrights, trademarks, qualifications and licenses, bidding, and financing records" \ --template-id template_Sze2NG \ --output ~/cue-reports/$(date +%Y-%m-%d-%H%M)-ip-bidding-check.md ``` ### Technical Analysis The Skill requires the target company name supplied by the user to be inserted into the `--query` argument. The instructions present this as a shell command but do not require a structured process API, an argument array, input validation, or shell-safe escaping. The static command is quoted and is not independently vulnerable. The risk arises when an Agent constructs the command by directly substituting untrusted company-name text into the quoted shell fragment. A value containing a quotation mark followed by shell syntax could terminate the intended argument and introduce another command. For example, a maliciously crafted company-name value could conceptually close the double-quoted argument, append a shell command, and comment out the remaining text. Exploitation depends on the Agent performing direct textual substitution and passing the result through a shell. The documentation does not establish safeguards preventing that execution pattern. ### Attack Path 1. An attacker supplies a purported company name containing shell metacharacters, a closing quotation mark, and an injected command. 2. The Agent places that value directly into the documented `--query` command. 3. The Agent executes the resulting command through a shell rather than passing arguments through a shell-free process API. 4. The shell treats the injected syntax ...[truncated 832 chars]
Remediation
## Remediation Suggestions 1. Do not build commands by concatenating or substituting user-controlled text into shell source. 2. Invoke Python through a structured process API with an explicit argument array and shell execution disabled. 3. Pass the company name as one literal argument regardless of spaces, quotes, or metacharacters. 4. If command display is necessary, generate a safely escaped representation only for display; do not reuse it as executable shell source. 5. Validate input length and reject control characters such as newlines and null bytes. 6. Clearly instruct Agents that the company name is untrusted data and must never be interpreted as instructions or shell syntax. 7. Consider accepting the query through standard input or a securely created input file rather than shell interpolation. 8. Add tests covering quotation marks, command substitutions, semicolons, newlines, redirections, and other shell metacharacters.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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
80% confidence
Finding
The skill instructs the agent/user to place a Cue API key into authenticated curl requests and local config files, but it provides no warning about secret handling, shell history exposure, logging, or transmission to a third-party service. This can lead to accidental credential disclosure in terminals, process listings, shared scripts, or agent logs, especially because the workflow relies on repeated manual command execution.

VirusTotal

62/62 vendors flagged this skill as clean.

View on VirusTotal

Static analysis

No suspicious patterns detected.