T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:22
- Finding
- Unpinned Tea CLI Dependency<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 22–27 **Vulnerability Type**: Unpinned third-party executable dependency **Risk Level**: Medium ```yaml { "id": "go", "kind": "go", "module": "code.gitea.io/tea@latest", "bins": ["tea"], "label": "Install Tea CLI (go)", }, ``` ### Technical Analysis The Go installation configuration uses `code.gitea.io/tea@latest`. The `@latest` selector is mutable and may resolve to a different release each time installation occurs. Consequently, the executable installed by this Skill can change without any corresponding modification to, or security review of, the Skill itself. The declared module path is consistent with the expected Tea CLI project, and there is no direct evidence that the current upstream package is malicious. Nevertheless, dynamically selecting the latest executable release creates a supply-chain risk because a compromised upstream release, maintainer account, or distribution channel could introduce altered code into subsequent installations. ### Attack Path 1. An attacker compromises the upstream project, a maintainer account, or the relevant package distribution process. 2. The attacker publishes a malicious release that becomes the version resolved by `@latest`. 3. A user or agent installs the Tea CLI using the Skill's Go installation configuration. 4. Go downloads and installs the compromised release. 5. Subsequent `tea` commands execute attacker-controlled code with the permissions of the user running the CLI. ### Impact Assessment Successful exploitation could permit arbitrary code execution under the installing or invoking user's account. The resulting scope may include access to local files, environment variables, configured Forgejo credentials, and repositories or Forgejo resources authorized by the user's token. This configuration does not itself provide privilege escalation beyond the permissions of the user executing the installed program. ]]>
- Remediation
- <![CDATA[ ## Remediation Suggestions - Replace `@latest` with a specific, reviewed semantic version, for example `code.gitea.io/tea@vX.Y.Z`. - Review release notes and security advisories before updating the pinned version. - Use Go's checksum database and module verification controls where applicable. - If the upstream project publishes signed releases or provenance attestations, verify them before approving an update. - Introduce a controlled dependency-update process that tests and reviews each new version before changing the pin. ]]>
