T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:12
- Finding
- Unpinned Third-Party CLI Dependency## Vulnerability Details **File Location**: `SKILL.md`, lines 12–18 **Vulnerability Type**: Supply-chain risk from an unpinned third-party dependency **Risk Level**: Medium **Vulnerable Code**: ```yaml "install": [ { "id": "brew", "kind": "brew", "formula": "yakitrak/yakitrak/obsidian-cli", "bins": ["obsidian-cli"], "label": "Install obsidian-cli (brew)", }, ], ``` ### Technical Analysis The skill declares `obsidian-cli` as a required executable and directs users to install it from the third-party Homebrew tap `yakitrak/yakitrak`. The dependency is not pinned to a reviewed version, formula revision, source commit, or cryptographic checksum. Consequently, the code installed when this instruction is followed can change after the skill has been audited. The skill's official Obsidian documentation homepage does not establish that this third-party tap is maintained or endorsed by Obsidian. This creates a supply-chain trust boundary that is not clearly disclosed or technically constrained. No evidence establishes that the current dependency is malicious. The vulnerability is the unsafe, mutable dependency acquisition mechanism. ### Attack Path 1. An attacker compromises the third-party Homebrew tap, its source repository, maintainer account, release infrastructure, or referenced artifact. 2. The attacker modifies the formula or upstream package to include malicious installation or runtime behavior. 3. A user follows the skill metadata and installs `yakitrak/yakitrak/obsidian-cli`. 4. Homebrew retrieves the modified formula or artifact and runs the associated installation process with the user's privileges. 5. The compromised CLI executes during installation or when the skill invokes commands such as `search`, `create`, `move`, or `delete`. 6. Because the CLI operates on local Obsidian vaults, attacker-controlled code may read, alter, or delete notes and access other ...[truncated 692 chars]
- Remediation
- ## Remediation Suggestions 1. Prefer an official Obsidian-maintained CLI or distribution channel if one becomes available. 2. If the third-party implementation remains necessary, pin it to a specifically reviewed package version and immutable source commit. 3. Verify downloaded artifacts with a trusted cryptographic checksum or signature. 4. Pin the Homebrew formula to a reviewed revision rather than implicitly accepting future changes from the tap. 5. Document that the CLI and tap are third-party components and obtain informed user approval before installation. 6. Review the formula, source repository, transitive dependencies, and release process before approving updates. 7. Run the CLI with least privilege and restrict its filesystem access to the intended vault where practical. 8. Avoid automatic dependency installation; separate installation from skill execution so users can verify the package source and version first.
