T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:59
- Finding
- Execution of an Unpinned and Externally Managed Runner< 注册获取。 Runner 来源:[GitHub - sensedeal/cue-skills](https://github.com/sensedeal/cue-skills)([Gitee 镜像](https://gitee.com/sensedeal/cue-skills))。 --- ## 调用说明 ```bash python3 ~/.cue/cue-skills/cue-research/scripts/research_run.py \ ``` ### Technical Analysis The Skill's core functionality relies on a Python runner obtained separately from mutable GitHub or Gitee repositories. The project does not contain the claimed installation script or the runner itself, and it does not specify an immutable commit, version tag with integrity verification, cryptographic checksum, or signature. As a result, the behavior ultimately executed by the Skill cannot be determined by auditing this package alone. A repository owner, compromised account, compromised mirror, or network/software-supply-chain attacker could modify the runner after this Skill has been reviewed. This dependency exceeds the minimum safely verifiable privilege needed for industry research. The external runner executes as the current user and may consequently access anything available to that account, rather than operating inside a constrained research-only environment. ### Attack Path 1. An attacker compromises the upstream GitHub repository, its Gitee mirror, a maintainer account, or the installation/distribution process. 2. The attacker replaces the expected runner with modified Python code. 3. A user follows the Skill instructions and installs or updates the external runner without integrity verification. 4. The Skill invokes: `python3 ~/.cue/cue-skills/cue-research/scripts/research_run.py`. 5. The modified runner executes with the Agent ...[truncated 892 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Bundle the complete runner and installer inside the Skill so their behavior can be audited together. 2. If external retrieval is necessary, pin the runner to an immutable commit identifier rather than a branch or mutable release. 3. Publish and verify a SHA-256 or stronger checksum before execution. 4. Prefer signed releases and verify signatures against a documented, trusted maintainer key. 5. Do not silently switch between GitHub and Gitee mirrors; require each source and artifact to pass the same integrity verification. 6. Display the exact source revision and verified digest before running the dependency. 7. Execute the runner in a sandbox with access limited to the required output directory, Cue endpoint, API credential, and research query. 8. Use a narrowly scoped, revocable API token rather than a broadly privileged credential. 9. Add the missing installation procedure to the package and ensure it fails closed when integrity verification cannot be completed. ]]>
