T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:33- Finding
Execution of Arbitrary Remote WebAssembly Components
- Content
View full analysis
``` `` is one of: - OCI registry ref: `ghcr.io/actpkg/sqlite:0.1.0` - HTTP URL: `https://example.com/component.wasm` - Local file: `./component.wasm` The output contains: - `metadata_schema` — required configuration keys (pass via `--metadata`) - `tools` — list of tool names, descriptions, and `parameters_schema` Use `--format text` for a human-readable summary instead of JSON. ## Step 2: Call a tool ```bash act call --args '' [options] ``` Remote components are cached locally after first download. ``` ### Technical Analysis The skill permits `` to be an arbitrary HTTP URL and subsequently passes that reference to `act call`, causing externally hosted executable WebAssembly content to be downloaded and run. No source allowlist, cryptographic digest pinning, signature verification, provenance validation, or mandatory user confirmation is required. Consequently, the payload actually executed can differ from the payload reviewed previously. WebAssembly sandboxing reduces default host access but does not establish the trustworthiness of the component, particularly because the skill also documents mechanisms for granting filesystem capabilities. ### Attack Path 1. An attacker supplies or influences a component reference, such as an attacker-controlled HTTPS URL. 2. The agent runs `act info --tools` against that URL and treats the component-provided metadata as tool discovery output. 3. The agent invokes an exported tool using `act call`. 4. The remote component is downloaded, cached locally, and executed. 5. The component performs attacker-selected operations using its runtime capabilities and any permissions granted by the ...[truncated 485 chars]- Remediation
View remediation
