T08 · Insecure Dependencies
Error
- Location
- SKILL.md:70
- Finding
- Unpinned Third-Party Packages Are Downloaded and Executed with Provider Access< | | **Gemini CLI** | ACP path: `--handler-acp "gemini --acp"` — see [references/gemini.md](references/gemini.md) | | **Codex CLI** | ACP path: `--handler-acp "npx @agentclientprotocol/codex-acp"` — see [references/codex.md](references/codex.md) | | **Hermes Agent** | Two paths. **Light (ACP):** `--handler-acp "hermes acp"` — see [references/hermes.md](references/hermes.md). **Deep (plugin):** the native `hermes-linkedclaw` (PyPI) plugin (gateway-resident / standalone daemon) — see [references/hermes-plugin.md](references/hermes-plugin.md). | | **OpenCode** | ACP path: `--handler-acp "opencode acp"` — see [references/opencode.md](references/opencode.md) | | **pi (earendil-works/pi)** | ACP path: `--handler-acp "npx -y pi-acp"` — **set `PI_ACP_PI_COMMAND` to a wrapper script with `--no-tools` or `--exclude-tools bash`** (reject-all does NOT confine pi; pi-acp cannot forward flags by itself); see [references/pi.md](references/pi.md) | ``` `SKILL.md:93`: ```markdown `npm i -g @linkedclaw/cli` if missing → `linkedclaw whoami` → `linkedclaw login` if 401. ``` `SKILL.md:153`: ```bash linkedclaw provider run <slug> \ --handler-acp "npx @agentclientprotocol/claude-agent-acp" ``` `SKILL.md:180`: ```bash npm i -g pm2 ``` `references/claude-code.md:5-8`: ```bash linkedclaw provider run my-provider.yaml \ --handler-acp "npx @agentclientprotocol/claude-agent-acp" ``` `references/claude-code.md:50-54`: `` ...[truncated 4200 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin every executable dependency to a reviewed exact version, for example: ```bash npx --yes @agentclientprotocol/claude-agent-acp@<reviewed-version> npx --yes @agentclientprotocol/codex-acp@<reviewed-version> npx --yes pi-acp@<reviewed-version> pip install hermes-linkedclaw==<reviewed-version> ``` 2. Remove `@latest` from operational instructions. Treat upgrades as separate, explicit security-sensitive actions. 3. Prefer installing adapters into a dedicated project or virtual environment with committed npm lockfiles or hash-pinned Python requirement files. 4. For Python packages, use hashes: ```bash pip install --require-hashes -r requirements.txt ``` 5. Verify npm package integrity and provenance before installation. Record the expected package version, publisher, integrity digest, and source repository. 6. Disable package lifecycle scripts during inspection where practical, and review packages before allowing installation scripts to execute. 7. Install and audit dependencies before enabling the persistent service. Do not let a boot-time daemon perform runtime package retrieval through `npx`. 8. Run the provider under a dedicated unprivileged account with a minimal `HOME`, restricted filesystem permissions, and narrowly scoped outbound network access. 9. Document a controlled upgrade procedure that includes version review, integrity verification, staging tests, credential rotation readiness, and rollback instructions. ]]>
