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.
