T08 · Insecure Dependencies
- Location
- templates/monitor-channel.sh:171
- Finding
- Incorrect and Unpinned Package Installation Creates Dependency-Confusion Risk<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:8-13`; `templates/monitor-channel.sh:171-176`; `templates/post-message.sh:155-160`; `templates/team-summary.sh:43-47` **Vulnerability Type**: Supply-chain dependency confusion and unpinned dependency installation **Risk Level**: High ### Vulnerable Code The Skill manifest declares `agent-messenger` as the package providing the `agent-teams` executable: ```yaml metadata: openclaw: requires: bins: - agent-teams install: - kind: node package: agent-messenger bins: [agent-teams] ``` However, all three runnable templates recommend installing a different package name. For example: ```bash if ! command -v agent-teams &> /dev/null; then echo -e "${RED}Error: agent-teams not found${NC}" echo "" echo "Install it with:" echo " bun install -g agent-teams" exit 1 fi ``` The same conflicting installation instruction appears in: ```bash echo " bun install -g agent-teams" ``` The project documentation itself states that `agent-teams` is not the npm package name and warns against installing it: ```markdown **`agent-teams` is NOT the npm package name.** The npm package is `agent-messenger`. **NEVER run `bunx agent-teams`** — it will fail or install a wrong package since `agent-teams` is not the npm package name. ``` ### Technical Analysis The templates contradict the package identity declared by the manifest and documented in `SKILL.md`. A user who runs a template without the expected executable installed is instructed to globally install `agent-teams`, even though the expected package is `agent-messenger`. This creates a dependency-confusion or package-substitution opportunity. The audit does not establish that any currently published package is malicious; the vulnerability is that an unintended package can occupy the recommended name and be executed as a trusted Teams client. Neither installation path pins a reviewed package version or integrit ...[truncated 1507 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Replace every incorrect installation instruction with the verified package identity: ```bash bun install -g agent-messenger@<reviewed-version> ``` 2. Pin the dependency to a specific reviewed version rather than accepting the latest release. 3. Use lockfiles and registry integrity hashes where the runtime supports them. 4. Verify that the installed executable resolves to the expected package before requesting authentication. 5. Remove duplicated installation logic from templates and maintain one authoritative installation procedure. 6. Include the external CLI implementation in the security review, especially its cookie access, credential storage, and network destinations. 7. Prefer a signed release artifact or trusted package registry namespace with publisher verification. 8. Add an automated test that fails if templates reference a package name different from the manifest. ]]>
