T08 · Insecure Dependencies
- Location
SKILL.md:7- Finding
Unpinned Executable Installation from a Third-Party Homebrew Tap
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 7
Vulnerability Type: Unpinned third-party dependency installed from an external package source
Risk Level: MediumVulnerable Code
yaml metadata: {"clawdbot":{"emoji":"🧾","requires":{"bins":["summarize"]},"install":[{"id":"brew","kind":"brew","formula":"steipete/tap/summarize","bins":["summarize"],"label":"Install summarize (brew)"}]}}Technical Analysis
The Skill directs the host to install the
summarizeexecutable from the third-party Homebrew tapsteipete/tapwithout specifying an immutable release, commit, package checksum, or signature-verification requirement.Consequently, the executable installed at deployment time may differ from the implementation that existed when this Skill was reviewed. The executable's source code is not included in the audited artifact, which contains only
SKILL.mdand_meta.json; therefore, its handling of local files, API credentials, remote requests, and command execution cannot be independently verified from this package.This creates a supply-chain trust boundary. If the tap, formula repository, release infrastructure, or maintainer account is compromised, the mutable formula could distribute an attacker-controlled executable while preserving the expected package and binary names.
Attack Path
- An attacker compromises the third-party Homebrew tap, its maintainer account, or an artifact location referenced by its formula.
- The attacker changes the formula or distributed package so that it installs a malicious executable named
summarize. - A user installs the Skill dependency through the declared Homebrew installation mechanism.
- Homebrew resolves the mutable third-party formula and installs the compromised package without validation against a checksum or revision defined by this Skill.
- The user or agent invokes
summarizeas documented. - The malicious executable runs with the privileges of the invoking user an ...[truncated 706 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the dependency to an immutable and reviewed release, formula revision, or source commit rather than relying only on the mutable name
steipete/tap/summarize. - Record and verify a cryptographic checksum for the exact downloaded artifact before installation or execution.
- Require signed releases and validate signatures against a documented, trusted maintainer key where supported.
- Prefer a trusted package source with reproducible builds and transparent release provenance.
- Include the executable's source code or a verifiable source reference in the Skill package so its runtime behavior can be audited.
- Document the exact package version and update it only through a review process that examines dependency changes.
- Run the executable with least privilege and restrict its access to unrelated files, credentials, and network destinations where practical.
- Avoid exposing unnecessary API keys in the execution environment and use narrowly scoped credentials for optional external services.
- Pin the dependency to an immutable and reviewed release, formula revision, or source commit rather than relying only on the mutable name
