T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:58- Finding
Remote Foundry Installer Is Downloaded and Executed Without Verification
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is coherent Cannon documentation, but it deserves review because its setup and examples can expose users to unsafe remote installation and private-key handling during irreversible blockchain operations.
Review this skill before installing if it will be used around funded wallets or production deployments. Prefer isolated development environments, pinned and verified tool installation, hardware or managed signers instead of raw private keys, dry-runs before any real network action, and careful review of package contents before publishing to the on-chain registry or IPFS.
SKILL.md:58Remote Foundry Installer Is Downloaded and Executed Without Verification
SKILL.md:57Unpinned Packages Are Installed Globally from Mutable Registry Sources
SKILL.md:196Deployment Private Keys Are Passed Through Process Command-Line Arguments
The skill recommends piping a remote script directly into bash (curl ... | bash) to install Foundry. This is a real supply-chain risk because it executes network-fetched code without verification, exposing users to compromise if the host, transport, or upstream distribution path is tampered with. In this skill's context, the danger is heightened because the tool manages blockchain deployments and may coexist with private keys, RPC credentials, and other sensitive developer secrets.
Before using this skill, ensure these tools are installed:
- **Node.js 18+** and **pnpm** - `npm install -g pnpm`
- **Foundry** (forge, anvil, cast) - `curl -L https://foundry.paradigm.xyz | bash && foundryup`
- **Cannon CLI** - `pnpm add -g @usecannon/cli`
Verify installation:
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
Options:
- `--no-confirm` — Skip confirmation prompt
- `--ipfs` — Delete only unreferenced IPFS packages
## Verify Command
The CLI documentation explicitly instructs users to pass a private key via a command-line flag or environment variable, but it does not include any warning about secret handling risks such as shell history exposure, process listing visibility, CI log leakage, or accidental sharing of environment configuration. In a deployment tool for Ethereum, these credentials directly control funds and package publishing authority, so omission of operational safety guidance materially increases the chance of credential compromise.
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.
- `--write-deployments <dir>` — Output directory for deployment files
- `--upgrade-from <ref>` — Upgrade from existing package (only if auto-detected package is wrong)
Note: If `cannon <package>` is run and the command isn't recognized, Cannon automatically executes `cannon run <package>`.
## Run Command
The publish command documents use of a private key and RPC endpoint but does not warn that publishing may expose transaction metadata, package contents, or related deployment information to external RPC, registry, and IPFS-adjacent services. For a package manager that publishes on-chain and to external infrastructure, users should be clearly informed that sensitive operational data may leave their environment.
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.
Options:
- `--no-confirm` — Skip confirmation prompt
- `--ipfs` — Delete only unreferenced IPFS packages
## Verify Command
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.
Options:
- `--no-confirm` — Skip confirmation prompt
- `--ipfs` — Delete only unreferenced IPFS packages
## Verify Command
The documentation explains that publishing makes a package available on the on-chain registry and IPFS, but it does not prominently warn users before the publish workflow that published artifacts are publicly accessible and effectively permanent. In this skill context, users may publish deployment metadata, ABIs, transaction data, and potentially source code, creating a real risk of unintended disclosure of sensitive project information.
The clean command section documents cache deletion commands but does not clearly warn that these operations remove local cached artifacts and may disrupt offline reuse or force re-fetching of packages. While this is not a confidentiality or code-execution issue, it can still lead to accidental data loss or workflow disruption if users run the command without understanding its destructive effect.