T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:5
- Finding
- Unpinned Executable Dependency from a Third-Party Homebrew Tap## Vulnerability Details **File Location**: `SKILL.md`, line 5 **Vulnerability Type**: Unpinned third-party executable dependency **Risk Level**: Medium ### Vulnerable Code ```yaml metadata: {"clawdbot":{"emoji":"💎","requires":{"bins":["obsidian-cli"]},"install":[{"id":"brew","kind":"brew","formula":"yakitrak/yakitrak/obsidian-cli","bins":["obsidian-cli"],"label":"Install obsidian-cli (brew)"}]}} ``` ### Technical Analysis The skill directs the environment to install `obsidian-cli` from the third-party Homebrew tap `yakitrak/yakitrak`. The dependency declaration does not pin a reviewed version or immutable source commit and does not specify an expected checksum or other integrity constraint. Consequently, the executable and its installation logic can change after this skill version has been reviewed. If the tap, formula, release artifact, or upstream publishing account is compromised, a subsequent installation or upgrade could retrieve and execute altered code under the installing user's account. This is a supply-chain trust issue rather than evidence that the dependency is currently malicious. ### Attack Path 1. An attacker compromises the third-party Homebrew tap, its publishing credentials, or an artifact referenced by its formula. 2. The attacker publishes a modified formula or executable under the existing `obsidian-cli` package identity. 3. A user or automated skill installer processes the unpinned `yakitrak/yakitrak/obsidian-cli` declaration. 4. Homebrew retrieves and installs the attacker-controlled version. 5. Installation logic or the resulting executable runs with the permissions of the installing user. 6. When invoked for vault operations, the compromised executable can access data available to that user, including configured Obsidian vault content. ### Impact Assessment Successful exploitation could permit arbitrary code execution with the installing user's privileges. The resulting scope could include reading or modifying Obsidian notes ...[truncated 283 chars]
- Remediation
- ## Remediation Suggestions - Prefer a verified official distribution channel when one is available. - Pin the dependency to a reviewed release or immutable source revision rather than allowing the installed implementation to change independently. - Verify downloaded artifacts against an expected cryptographic checksum or signature from a separately trusted source. - Record the approved dependency version, source repository, and digest in the skill metadata or installation documentation. - Perform upgrades through an explicit review process instead of silently accepting the latest formula. - Run the CLI with least privilege and limit its filesystem access to the intended Obsidian vault where the execution environment supports sandboxing.
