T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:5
- Finding
- Unpinned CardPointers CLI Installation from a Third-Party Homebrew Tap<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, line 5 **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: Medium ### Vulnerable Code ```yaml metadata: {"clawdbot":{"emoji":"💳","requires":{"bins":["cardpointers","jq"]},"install":[{"id":"brew","kind":"brew","formula":"cardpointers/tap/cardpointers","bins":["cardpointers"],"label":"Install cardpointers (brew)"},{"id":"jq","kind":"brew","formula":"jq","bins":["jq"],"label":"Install jq (brew)"}]}} ``` ### Technical Analysis The skill directs its runtime environment to install the CardPointers CLI from the third-party Homebrew formula `cardpointers/tap/cardpointers`. The dependency is not pinned to an audited version, immutable repository commit, or cryptographic checksum. Consequently, the executable installed when the skill is used may differ from the version that existed when the skill was reviewed. The implementation of the formula and CLI is not included in this project, so their installation logic and runtime behavior cannot be verified by auditing `SKILL.md`. This is especially sensitive because the documented CLI authenticates users and stores a JWT in `~/.cardpointers/config`. A compromised tap, formula, release artifact, or upstream publishing account could distribute malicious installation logic or a modified CLI capable of accessing that token and the financial-profile information returned by the service. ### Attack Path 1. An attacker compromises the third-party Homebrew tap, its publishing account, the referenced release infrastructure, or another component of its distribution chain. 2. The attacker modifies the mutable formula or its downloaded artifact to install malicious code. 3. A user or agent loads the skill and follows its installation metadata, causing Homebrew to resolve and install the compromised current version. 4. The malicious installation logic or executable runs with the privileges of the user performing the installation. 5. When the user auth ...[truncated 1082 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin the CardPointers CLI to a specific, reviewed release rather than resolving an unrestricted current formula. 2. Pin the Homebrew tap or formula to an immutable source revision where supported. 3. Verify downloaded artifacts using a published cryptographic checksum and, preferably, a trusted release signature. 4. Document the canonical tap repository and expected artifact source so operators can verify provenance before installation. 5. Review the Homebrew formula and CLI source corresponding to the pinned release, including installation hooks and token-handling behavior. 6. Run the CLI with ordinary user privileges and avoid elevated installation or execution unless strictly required. 7. Restrict permissions on `~/.cardpointers/config` to the owning user and ensure logs or debug output do not disclose its JWT. 8. Establish a controlled dependency-update process in which new releases and checksums are reviewed before the pinned version is changed. ]]>
