T08 · Insecure Dependencies
Error
- Location
- SKILL.md:287
- Finding
- Unpinned Third-Party Skills Selected Through a Mutable Popularity Ranking## Vulnerability Details **File Location**: `SKILL.md:287-305` **Vulnerability Type**: Untrusted and unpinned dependency installation **Risk Level**: High **Vulnerable Code Snippet**: ```text ### Dependency Skills (Required — Install First) DEPENDENCY SKILLS — install these first on each agent: All agents: - Asana skill (for Asana task management) Agents that touch code (engineer, dev-fe, dev-be, qa, n8n_engineer): - Git skill (for repository operations) PM agent only: - Email skill (for Dev Manager completion alerts) Search ClawHub for the best-rated version of each if not already installed. ### EncryptShawn Workflow Skills (All Agents) - openclaw-administrator - openclaw-recovery-manager - approved-self-improver ``` ### Technical Analysis The setup procedure instructs the Agent to search ClawHub and install the “best-rated” version of several dependency Skills. It does not pin an exact publisher, package slug, version, or integrity digest for the Asana, Git, and email dependencies. Popularity and rating are mutable discovery signals rather than security boundaries. Consequently, the effective dependency selected during installation can differ from the dependency that was previously reviewed. An attacker could exploit ranking manipulation, publisher impersonation, typosquatting, or compromise of a currently popular package. Installing the selected dependencies on multiple Agents amplifies the exposure. The unconditional inclusion of `approved-self-improver` further increases the potential consequences because self-modification capabilities are not required merely to provision a development team. ### Attack Path 1. An attacker publishes or compromises a ClawHub Skill matching a requested dependency category, such as an Asana, Git, or email Skill. 2. The attacker manipulates ratings or otherwise causes that package to appear as the “best-rated” result. 3. During team setup, the Agent follows ...[truncated 1221 chars]
- Remediation
- ## Remediation Suggestions 1. Replace popularity-based selection with an explicit allowlist containing the trusted publisher, exact package slug, and reviewed version for every dependency. 2. Pin a cryptographic integrity digest or signed release identity where the platform supports it. 3. Require operator confirmation before installing any dependency that is not already on the allowlist. 4. Perform a static review of each dependency's instructions, scripts, requested permissions, network behavior, and credential access before installation. 5. Record the resolved owner, version, and digest in the project configuration to support reproducible setup and future audits. 6. Apply least privilege per role. For example, do not install email functionality outside the PM Agent, and limit Git permissions to only the required repositories and operations. 7. Remove `approved-self-improver` from the default installation set unless the operator explicitly requests it and accepts its additional trust implications. 8. Reject similarly named, newly published, unsigned, or ownership-changed packages until manually reviewed.
