T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:69
- Finding
- Execution of an Unpinned Externally Maintained Runner< ([Gitee mirror](https://gitee.com/sensedeal/cue-skills)). ``` ```bash python3 ~/.cue/cue-skills/cue-research/scripts/research_run.py \ --query "<original user query>" \ --template-id <runtime template_id> \ --output ~/cue-reports/$(date +%Y-%m-%d-%H%M)-overseas-litigation.md ``` ### Technical Analysis The Skill does not include the runner it instructs the Agent to execute. Instead, it relies on a Python program obtained from an external GitHub repository or Gitee mirror. The documentation does not pin the runner to an immutable commit or signed release and does not require verification through a cryptographic checksum or signature. Consequently, the executable implementation reviewed by a user at one point may differ from the implementation later installed or executed. Compromise of the upstream repository, maintainer account, distribution mirror, or update process could substitute malicious Python code. The externally hosted runner is executed directly with the invoking user's permissions. It also receives the user's original query and a server-selected template identifier. This dependency model exceeds the minimum trust necessary for a documentation-only Skill because the security of the local execution environment depends on mutable code that is absent from the audited package. The pre-scan warning concerning a direct `curl | bash` pipeline was not confirmed. The command at line 157 pipes an API JSON response into a fixed local Python JSON parser, not into a shell. The relevant code-execution risk instead arises from the separately sourced and unpinned runner. ### Attack Path 1. An attacker compromises the upstream `sensedeal/cue-skills` repository, its maintain ...[truncated 1669 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin the runner to an immutable Git commit or versioned release instead of relying on a mutable branch. 2. Publish an expected SHA-256 or stronger cryptographic digest and require verification before execution. 3. Sign releases and verify signatures against a documented, independently distributed maintainer key. 4. Prefer bundling the reviewed runner source inside the Skill package so that the complete executable behavior is available during audit. 5. Do not treat the GitHub and Gitee copies as interchangeable unless both are verified against the same trusted digest. 6. Document the precise installation command and prevent silent or automatic updates. 7. Review changes before upgrading to another pinned runner version. 8. Run the runner in a sandbox with access limited to: - The Cue configuration required for authentication. - A dedicated output directory. - The declared Cue API endpoints. 9. Deny access to unrelated home-directory files and environment variables where the execution platform supports filesystem and process isolation. 10. Ensure that server-provided template data is treated strictly as data and cannot control imports, shell commands, file paths, or executable code. ]]>
