T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:12
- Finding
- Unpinned Third-Party Executable Dependencies<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 12–23 **Vulnerability Type**: Unpinned third-party executable dependencies **Risk Level**: Medium ### Vulnerable Code ```yaml "install": [ { "type": "homebrew", "package": "steipete/tap/gifgrep", "label": "Install GifGrep CLI (Homebrew)" }, { "type": "go", "package": "github.com/steipete/gifgrep/cmd/gifgrep@latest", "label": "Install GifGrep CLI (Go)" } ] ``` ### Technical Analysis The skill directs users or an agent runtime to install executable software from external third-party sources without pinning it to an immutable, audited release. In particular, the Go installation uses the mutable `@latest` selector. The Homebrew dependency also lacks a fixed version, commit, checksum, or signature requirement. Consequently, the code installed in the future may differ from the code reviewed when this skill was published. If the upstream repository, release process, Go module, or Homebrew tap is compromised, an attacker can replace the resolved artifact with malicious code. This finding concerns supply-chain integrity. The audited skill does not itself contain a malicious payload, and the available evidence does not establish that the referenced upstream project is currently malicious. ### Attack Path 1. An attacker compromises the upstream source repository, release credentials, Go module publication path, or Homebrew tap. 2. The attacker publishes a malicious version as the newest release or modifies the unpinned Homebrew formula. 3. A user or agent installs the dependency using one of the declarations in `SKILL.md`. 4. The package manager resolves the mutable dependency to the attacker-controlled version. 5. Malicious installation logic or the resulting `gifgrep` executable runs under the privileges of the installing or invoking user. ### Impact Assessment Successful exploitation could permit arbitrary code execution with the pr ...[truncated 510 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Replace `@latest` with a specific audited semantic version, such as `@vX.Y.Z`, or preferably an immutable commit or module version whose contents have been reviewed. 2. Pin the Homebrew installation to a controlled, versioned formula rather than relying on the current state of an unpinned tap. 3. Publish and verify cryptographic checksums or signatures for release artifacts before installation. 4. Use trusted release automation with protected tags, branch protection, mandatory review, and tightly scoped publication credentials. 5. Add an explicit upgrade process in which new dependency versions are reviewed and tested before the pins are changed. 6. Where supported, record dependency provenance and verify signed attestations to reduce the risk of repository or release-pipeline compromise. ]]>
