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**: `T08: Insecure Dependencies` **Risk Level**: Medium **Complete Code Snippet**: ```yaml metadata: {"clawdbot":{"emoji":"📨","os":["darwin"],"requires":{"bins":["imsg"]},"install":[{"id":"brew","kind":"brew","formula":"steipete/tap/imsg","bins":["imsg"],"label":"Install imsg (brew)"}]}} ``` ### Technical Analysis The installation configuration obtains an executable package from the third-party Homebrew tap `steipete/tap`. It does not pin the dependency to an immutable commit or artifact digest. The package implementation is also absent from the audited project, preventing verification of the code that will ultimately execute. Because Homebrew formula resolution depends on mutable upstream content, a compromised tap, maintainer account, formula, or referenced release artifact could distribute altered executable code after this Skill has been reviewed. The exposure is amplified by the documented operating requirements: the terminal is expected to have Full Disk Access and permission to automate Messages.app. Although no malicious code was found in the project itself, the dependency configuration creates a supply-chain trust boundary that is not cryptographically fixed by this package. ### Attack Path 1. An attacker compromises the custom Homebrew tap, its maintainer account, or an upstream artifact referenced by its formula. 2. The attacker publishes a modified `imsg` package or changes the formula to retrieve an attacker-controlled artifact. 3. A user installs or updates the Skill dependency through the configured `steipete/tap/imsg` formula. 4. Homebrew resolves and installs the mutable, compromised package. 5. The user or agent invokes `imsg` for chat listing, message history, monitoring, or message sending. 6. The compromised executable runs in the context of a terminal that may possess Full Disk Access and Messages.app automation permi ...[truncated 912 chars]
- Remediation
- ## Remediation Suggestions 1. Pin the dependency to a reviewed, immutable version and, where supported, an exact source commit. 2. Verify downloaded artifacts with a cryptographic checksum or signature controlled by a trusted release process. 3. Review and record the exact Homebrew formula and all transitive download locations before approving installation. 4. Prefer a trusted distribution channel with reproducible builds and signed release artifacts. 5. Automate dependency integrity and provenance checks in the publication pipeline. 6. Avoid granting Full Disk Access to a general-purpose terminal. Use a narrowly scoped launcher or dedicated executable identity where macOS permission controls allow it. 7. Grant Messages.app automation permission only when sending is required, and retain the existing requirement to confirm the recipient and message before transmission. 8. Re-audit the dependency whenever its pinned version, formula, source repository, or artifact digest changes.
