T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:12
- Finding
- Unpinned Executable Installed from a Third-Party Homebrew Tap<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 12-17 **Vulnerability Type**: Supply-chain exposure through an unpinned third-party dependency **Risk Level**: Medium ### Vulnerable Code ```yaml install: - kind: brew formula: runapi-ai/tap/runapi bins: - runapi ``` ### Technical Analysis The skill instructs the environment to install and execute the `runapi` CLI from the custom Homebrew tap `runapi-ai/tap`. It does not pin an immutable version, formula revision, source commit, checksum, or cryptographic signature. Consequently, the executable installed when the skill is used can differ from the version that existed when the skill was reviewed. A compromise of the tap, its release infrastructure, the referenced package location, or the publisher account could introduce attacker-controlled code without requiring any change to `SKILL.md`. The source appears related to the declared RunAPI service, and there is no evidence in the reviewed project that the current package is malicious. The vulnerability is the absence of controls that establish the identity and integrity of the executable. ### 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 `runapi` package under the expected formula name. 3. An agent loads the skill and follows its installation metadata. 4. Homebrew resolves and installs the current, unpinned package. 5. Malicious installation logic can run during installation, or the resulting executable can run when the skill invokes `runapi`. 6. The compromised executable operates with the privileges and environment access of the user running the agent. ### Impact Assessment Successful exploitation could provide arbitrary code execution under the account that installs or invokes the CLI. This may expose files readable by that account, saved CLI credentials, environment variables such as `RUNAPI_API_K ...[truncated 362 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin the CLI to a reviewed version and, where supported, an immutable formula revision or source commit. 2. Verify downloaded artifacts against a publisher-provided cryptographic checksum or signature before execution. 3. Document the canonical package repository and trusted signing identity. 4. Prefer a package source with reproducible releases and authenticated provenance. 5. Do not automatically install or execute the CLI if its version and integrity cannot be verified. 6. Run the CLI with least privilege and expose only the task-specific files and environment variables it requires. 7. Establish a controlled update process in which new dependency versions are reviewed before the pin is advanced. ]]>
