T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:11
- Finding
- Unpinned Third-Party Executable Dependency## Vulnerability Details **File Location**: `SKILL.md`, lines 11-27 **Vulnerability Type**: Mutable and unverified third-party executable dependency **Risk Level**: Medium ### Vulnerable Code ```yaml "install": [ { "id": "brew", "kind": "brew", "formula": "steipete/tap/wacli", "bins": ["wacli"], "label": "Install wacli (brew)", }, { "id": "go", "kind": "go", "module": "github.com/openclaw/wacli/cmd/wacli@latest", "bins": ["wacli"], "label": "Install wacli (go)", }, ], ``` ### Technical Analysis The installation configuration obtains and executes `wacli` from a third-party Homebrew tap or from a mutable Go `@latest` reference. Neither installation option specifies an immutable version, commit hash, artifact checksum, nor cryptographic signature. Consequently, the installed executable can differ from the version reviewed during the Skill audit. The `@latest` selector explicitly resolves according to upstream state at installation time, while the unversioned Homebrew formula may also resolve to a subsequently modified package. This creates a supply-chain trust boundary in which compromise of the upstream repository, release process, package metadata, maintainer account, or distribution channel could introduce attacker-controlled executable code. This finding does not establish that the current upstream package is malicious. The vulnerability is the absence of controls ensuring that installation retrieves the specific artifact that was audited. ### Attack Path 1. An attacker compromises an upstream maintainer account, repository, Homebrew tap, release workflow, or another relevant distribution component. 2. The attacker publishes a modified `wacli` release or changes the package metadata referenced by the unpinned installation declaration. 3. A user or agent installs the dependency through the configured Homebrew sourc ...[truncated 1320 chars]
- Remediation
- ## Remediation Suggestions 1. Replace `github.com/openclaw/wacli/cmd/wacli@latest` with a specific audited semantic version or, preferably, an immutable commit identifier. 2. Pin the Homebrew installation to a reviewed release where the deployment mechanism supports reliable version pinning. 3. Verify downloaded release artifacts using a published SHA-256 or stronger checksum obtained through a trusted channel. 4. Require cryptographic signature or provenance verification, such as signed release artifacts and verifiable build attestations. 5. Document the exact approved version and periodically review dependency updates before changing the pin. 6. Execute the tool with least privilege and restrict access to `~/.wacli` using appropriate filesystem permissions. 7. Where practical, isolate the executable in a sandbox with narrowly scoped filesystem and network access. 8. Avoid automatic upgrades that bypass review, integrity verification, or provenance checks.
