Back to skill

Security audit

大类资产配置月报

Security checks for vulnerabilities and agentic risk

Overview

This skill has a coherent finance-report purpose, but it asks users to run an unpinned external runner with local credentials, so it should be reviewed carefully before installation.

Install only if you trust Sensedeal/Cue and are comfortable sending allocation prompts and related investment context to cuecue.cn. Before running it, verify the external runner source yourself, avoid placing confidential client data in prompts, and consider using a dedicated Cue API key with limited exposure.

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:59
Finding
Execution of an Unpinned and Unaudited External Runner## Vulnerability Details **File Location**: `SKILL.md`, lines 59-78 **Vulnerability Type**: Unpinned third-party executable dependency **Risk Level**: Medium The Skill directs users to obtain a runner from an external GitHub or Gitee repository and subsequently execute it under the user's account. The external dependency is not pinned to an immutable commit or release, and no checksum or signature verification is specified. Relevant excerpt, rendered in English: ```markdown On first use, run the Skill's one-click installation script (check dependencies, clone the runner, verify the key, and test connectivity). Runner source: https://github.com/sensedeal/cue-skills Mirror: https://gitee.com/sensedeal/cue-skills python3 ~/.cue/cue-skills/cue-research/scripts/research_run.py \ --query "Monthly asset-allocation analysis" \ --template-id template_fkAFJt \ --output ~/cue-reports/$(date +%Y-%m)-asset-allocation.md ``` The package itself contains only `SKILL.md`. The referenced one-click installer and `research_run.py` are therefore outside the audited artifact. ### Technical Analysis The effective executable behavior is delegated to a mutable third-party repository. The documentation does not pin the runner to a specific commit hash, versioned release, or cryptographically verified artifact. Consequently, code installed at different times may differ from the code originally reviewed. The runner is executed directly with `python3` and inherits the invoking user's permissions, environment variables, filesystem access, and network access. The documented workflow also uses a Cue API credential stored in `~/.cue/config.json` or `CUE_API_KEY`, making that credential potentially accessible to the external runner. This is a supply-chain trust-boundary issue. It is not evidence that the current external repository is malicious, but the Skill provides no integrity control capable of detecting a future repository comprom ...[truncated 1790 chars]
Remediation
## Remediation Suggestions 1. Bundle the installer and runner in the Skill package so their complete contents can be reviewed with the Skill. 2. If external distribution is necessary, pin the dependency to an immutable commit hash or signed release rather than a mutable branch. 3. Publish and verify a SHA-256 digest before executing any downloaded artifact. 4. Require cryptographic release signatures and document how users must verify the signer identity. 5. Ensure the GitHub and Gitee artifacts are generated from the same reviewed source and verify both against the same trusted digest. 6. Replace the empty installation block with an explicit, auditable installation procedure. Do not use a remote-script-to-shell pipeline. 7. Run the external component with restricted filesystem and network access, exposing only the report output directory and required Cue API endpoint. 8. Provide the Cue credential through a protected mechanism and prevent it from appearing in logs or process arguments. 9. Document the exact files, network destinations, and permissions required by the runner so users can enforce least privilege. 10. Add dependency provenance and integrity checks to updates, and fail closed when verification cannot be completed.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (2)

Vague Triggers

Medium
Confidence
88% confidence
Finding
The example invocation phrases are broad, natural-language requests such as generating a monthly allocation report or asking how to allocate stocks and bonds. Because they overlap with normal portfolio discussion, an agent may trigger the skill unintentionally and send user queries to the external Cue service without sufficiently explicit user intent. This is more dangerous here because the skill performs external API calls and writes local output files.

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The skill instructs the agent to send a detailed query to a third-party service (cuecue.cn) and save the resulting report to a local path, but it does not present a prominent user-facing warning or consent step. Users may not realize that their prompts, preferences, or potentially sensitive investment context are being transmitted externally and persisted on disk. The surrounding skill context increases risk because the content is finance-related and may include confidential client allocation views.

Static analysis

No suspicious patterns detected.