Back to skill

Security audit

行业景气与竞争格局研判

Security checks for vulnerabilities and agentic risk

Overview

The skill is a disclosed Cue research integration, but it relies on locally executing an unaudited, unpinned external runner that can access the user's Cue key and filesystem.

Install only if you trust the sensedeal Cue runner source and are comfortable with it running as your user account. Prefer reviewing or pinning the runner revision before use, use a narrowly scoped/revocable Cue API key where possible, and avoid placing unrelated sensitive files in paths the runner can access.

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

T08 · Insecure Dependencies

Warning
Location
SKILL.md:60
Finding
Unpinned External Runner Is Installed and Executed Without Integrity Verification<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 60-79 **Vulnerability Type**: Unverified external dependency **Risk Level**: Medium ### Vulnerable Code Snippet ```text https://github.com/sensedeal/cue-skills https://gitee.com/sensedeal/cue-skills ``` ```bash python3 ~/.cue/cue-skills/cue-research/scripts/research_run.py \ --query "Target industry cycle and competitive landscape analysis" \ --template-id template_qcPkH8 \ --output ~/cue-reports/$(date +%Y-%m-%d-%H%M)-industry-competition.md ``` The surrounding instructions state that first-time setup installs the runner by cloning it from the referenced external repository. However, no commit hash, immutable release identifier, checksum, or signature is specified. The advertised one-click installer is also absent from the reviewed artifact, with the installation code block left empty. ### Technical Analysis The Skill's primary operation depends on code retrieved separately from a mutable third-party repository. It then directs the Agent to execute that code from `~/.cue/cue-skills`. Because no immutable revision or integrity verification is required, the code reviewed by a user at one point may differ from the code later installed and executed. Repository compromise, maintainer account compromise, malicious upstream changes, or mirror substitution could therefore introduce attacker-controlled behavior after this Skill has been reviewed. This is a supply-chain weakness rather than evidence that the current repository contains malicious code. The project contains only `SKILL.md`, so the actual behavior of `research_run.py` and the claimed installer could not be audited. The health-check pipeline at line 135 is not remote code execution. It sends an authenticated HTTPS request and passes the returned JSON to a fixed local Python parser; it does not pipe the response into Bash or evaluate it as Python source. ### Attack Path 1. A user follows the Skill's first-use setup dire ...[truncated 1567 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. **Pin an immutable revision** - Reference a specific audited Git commit or immutable release instead of a mutable default branch. - Apply the same pinning policy to both the GitHub source and Gitee mirror. 2. **Verify integrity before execution** - Publish a SHA-256 digest for the installer and runner release. - Verify the digest locally before executing any downloaded file. - Prefer signed release artifacts and verify signatures against a documented maintainer key. 3. **Include auditable installation logic** - Add the actual installer to the Skill package rather than referring to a missing one-click script. - Document all files created, commands executed, repositories contacted, and configuration values accessed. 4. **Avoid automatic execution after download** - Separate download, inspection, verification, and execution into distinct steps. - Do not use remote-script-to-shell pipelines. - Require installation to fail closed when signature or checksum validation fails. 5. **Reduce credential exposure** - Provide the runner only the specific Cue credential required for the request. - Avoid exposing unrelated environment variables or filesystem locations. - Use a narrowly scoped and revocable API token where supported. 6. **Constrain runtime privileges** - Run the external runner under a dedicated low-privilege account or sandbox. - Restrict filesystem access to its configuration and output directories. - Restrict outbound network access to documented Cue API endpoints where practical. 7. **Document update controls** - Require explicit review before changing the pinned runner revision. - Publish release notes and reproducible build information for every approved update. ]]>
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

Static analysis

No suspicious patterns detected.