T08 · Insecure Dependencies
Error
- Location
- templates/team-summary.sh:52
- Finding
- Conflicting and unpinned npm installation instructions create a dependency-substitution risk<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:8-13`, `SKILL.md:391-398`, `templates/team-summary.sh:52-59`, `templates/monitor-channel.sh:171-178`, `templates/post-message.sh:155-162` **Vulnerability Type**: T08: Insecure Dependencies **Risk Level**: High ### Vulnerable Code `SKILL.md:8-13`: ```yaml metadata: openclaw: requires: bins: - agent-teams install: - kind: node package: agent-messenger bins: [agent-teams] ``` `SKILL.md:391-398`: ```markdown **`agent-teams` is NOT the npm package name.** The npm package is `agent-messenger`. If the package is installed globally, use `agent-teams` directly: ```bash agent-teams team list ``` If the package is NOT installed, use `bunx agent-messenger teams`: ``` `templates/team-summary.sh:52-59`: ```bash if ! command -v agent-teams &> /dev/null; then echo -e "${RED}Error: agent-teams not found${NC}" >&2 echo "" >&2 echo "Install it with:" >&2 echo " bun install -g agent-teams" >&2 exit 1 fi ``` The same conflicting `bun install -g agent-teams` recommendation appears in `templates/monitor-channel.sh:171-178` and `templates/post-message.sh:155-162`. ### Technical Analysis The Skill manifest requests the npm package `agent-messenger`, but each runnable template tells users to install `agent-teams` globally. The Skill documentation expressly states that `agent-teams` is not the correct npm package name and may install the wrong package. This inconsistency creates a package-substitution or typosquatting opportunity. Neither installation path pins an exact package version or integrity digest. Consequently, the effective code can change after the Skill has been reviewed. npm-compatible package installations can also execute lifecycle scripts with the privileges of the invoking user. This is particularly dangerous here because the resulting CLI is expected to handle a reusable Microsoft Teams session token. The repository does not contain evid ...[truncated 1360 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Replace every `bun install -g agent-teams` instruction with the verified package name `agent-messenger`. 2. Pin an exact reviewed version rather than accepting the latest release. 3. Use a lockfile and package integrity hash where the execution environment supports them. 4. Avoid global installation; install into an isolated project environment with minimal filesystem access. 5. Verify publisher identity, package provenance, signatures, and registry source before installation. 6. Disable or strictly control package lifecycle scripts during installation where feasible. 7. Make the manifest and all templates use one consistent installation path. 8. Add automated tests that fail if documentation or templates reference an unapproved package name. ]]>
