T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:5
- Finding
- Unpinned Third-Party Executable Installation## Vulnerability Details **File Location**: `SKILL.md`, line 5; the Homebrew installation command is reiterated at line 11 **Vulnerability Type**: Unpinned and mutable third-party dependency **Risk Level**: Medium ### Vulnerable Code ```yaml metadata: {"openclaw": {"emoji": "📡", "requires": {"bins": ["feed"]}, "install": [{"kind": "brew", "formula": "odysseus0/tap/feed", "bins": ["feed"], "label": "Install via Homebrew"}, {"kind": "go", "package": "github.com/odysseus0/feed/cmd/feed@latest", "bins": ["feed"], "label": "Install via Go"}]}} ``` The documentation also instructs users to install from the third-party Homebrew tap: ```markdown Surface what's worth reading from RSS feeds. Requires `feed` CLI (`brew install odysseus0/tap/feed`). ``` ### Technical Analysis The Skill depends on the external `feed` executable and permits installation from a third-party Homebrew tap or through the Go toolchain using `@latest`. The Go dependency is not pinned to a reviewed version or commit, and no checksum or signature is specified. Consequently, the code installed in the future can differ from the code that was available when this Skill was audited. The Homebrew option similarly trusts a third-party tap. Although Homebrew formulae may contain version and checksum controls at a given point in time, the Skill does not pin a reviewed formula revision or otherwise establish an immutable trust boundary. There is no evidence that the current upstream package is malicious. The vulnerability is the unsafe supply-chain trust model: compromise of the upstream repository, release process, maintainer account, Go module, or Homebrew tap could turn the documented installation process into a local code-execution channel. The other network activity described by the Skill—fetching RSS feeds, importing a public starter OPML file, and retrieving selected article URLs—is consistent with its declared RSS digest functionality. The reviewed file does no ...[truncated 1838 chars]
- Remediation
- ## Remediation Suggestions 1. Replace `@latest` with a specific, reviewed semantic version or immutable commit identifier. 2. Document the expected cryptographic checksum for the selected release artifact and verify it before installation. 3. Prefer signed upstream releases and verify signatures against a documented maintainer key. 4. Pin the Homebrew formula or tap to a reviewed revision rather than implicitly trusting future tap updates. 5. Where feasible, distribute the dependency through a trusted official package source or vendor a reviewed build with reproducible-build documentation. 6. Avoid running dependency installation with administrative privileges unless strictly required. 7. Execute the `feed` binary with least privilege, restricting access to unrelated files, credentials, and network destinations where the host environment supports sandboxing. 8. Establish a dependency-update process in which new versions are reviewed, tested, and assigned new checksums before the pinned version is changed.
