T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:24
- Finding
- Unpinned Third-Party CLI Installation Creates a Supply-Chain Risk## Vulnerability Details **File Location**: `SKILL.md:11` and `SKILL.md:24-29` **Vulnerability Type**: Unpinned third-party dependency installation **Risk Level**: Medium ### Vulnerable Code ```yaml metadata: {"openclaw":{"emoji":"🔒","requires":{"bins":["germanic"]},"install":[{"id":"brew-install","kind":"brew","formula":"germanicdev/germanic/germanic","bins":["germanic"],"label":"Install GERMANIC CLI (Homebrew)"}]}} ``` ```bash brew tap germanicdev/germanic && brew install germanic ``` ```text Verify: `germanic --version` should print `0.2.3`. Alternative (from source): `cargo install germanic` ``` ### Technical Analysis The Skill directs users or agents to install and execute an externally maintained CLI through a third-party Homebrew tap or Cargo without pinning an immutable version, source revision, checksum, or cryptographic signature. The Homebrew command adds the external `germanicdev/germanic` tap and installs whichever formula revision is current at resolution time. Similarly, `cargo install germanic` resolves the current registry release and its build dependencies. The documented version check is performed only after installation, so it does not prevent package installation or build-time code from executing first. The audited project contains only documentation and does not include the CLI source, a dependency lock file, vendored dependencies, release checksums, or signatures. Therefore, claims that the CLI is offline, has no telemetry, and contains no unsafe behavior cannot be independently verified from this package. ### Attack Path 1. An attacker compromises the upstream Homebrew tap, formula repository, Cargo crate, maintainer account, release process, or a build dependency. 2. The attacker publishes a malicious or modified package under the expected package identity. 3. A user or agent follows the Skill's unpinned Homebrew or Cargo installation instructions. 4. The package manager r ...[truncated 992 chars]
- Remediation
- ## Remediation Suggestions 1. Pin installation to an exact CLI version and, where possible, an immutable source commit or artifact digest. 2. Publish SHA-256 or stronger checksums for release artifacts and verify them before installation or execution. 3. Cryptographically sign release artifacts and document signature verification using a trusted, independently distributed public key. 4. Pin Rust dependencies with a reviewed `Cargo.lock` and use locked builds, such as `cargo install --version 0.2.3 --locked germanic`, while recognizing that version pinning alone does not replace artifact verification. 5. Pin the Homebrew formula to a reviewed revision and ensure the formula references a versioned release archive with a verified checksum. 6. Prefer reproducible builds or vendored, audited source over dynamically resolving the latest package. 7. Perform integrity and provenance verification before any installer, build script, or binary is executed; a post-installation `--version` check is insufficient. 8. Run installation and the CLI with least privilege in a sandbox or isolated environment with restricted filesystem and network access. 9. Include the audited CLI implementation or a verifiable Software Bill of Materials so the documented security and offline-operation claims can be independently assessed.
