T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:23- Finding
Mutable Remote WebAssembly Payload Is Downloaded and Executed Without Integrity Verification
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 23–42
Vulnerability Type:T03: Remote Payload Retrieval and Execution
Risk Level: Highmarkdown - **Required plugin:** `openclaw-wasm-sandbox` - **WASM file:** `~/.openclaw/skills/graphviz/files/graphviz_component.wasm` (Use the `wasm-sandbox-download` tool to download,URL: `https://raw.githubusercontent.com/guyoung/wasm-sandbox-openclaw-skills/main/graphviz/files/graphviz_component.wasm`) ## How It Works The WASM component: - Accepts DOT graph string as **argument** - Outputs SVG to **stdout** ## Tool Use `wasm-sandbox-run` tool: | Parameter | Value | |-----------|-------| | `wasmFile` | `~/.openclaw/skills/graphviz/files/graphviz_component.wasm` | | `args` | DOT graph string, e.g. `["digraph { a -> b }"]` | ```javascript wasm-sandbox-run({ wasmFile: "~/.openclaw/skills/graphviz/files/graphviz_component.wasm", args: ["digraph { a -> b }"] })text ### Technical Analysis The skill directs the agent to download a WebAssembly executable from a third-party personal GitHub repository and subsequently execute that file through `wasm-sandbox-run`. The URL references the mutable `main` branch rather than an immutable commit or versioned release. No expected cryptographic digest, signature, immutable revision, or other integrity-verification mechanism is specified. Consequently, the code executed by the agent can differ from the artifact that was originally reviewed. This creates a remote payload substitution and supply-chain risk if the repository owner changes the file, the repository or account is compromised, or the upstream artifact is otherwise replaced. Execution inside a WASM sandbox may reduce the payload's available privileges, but it does not establish the payload's authenticity. It also does not eliminate denial-of-service behavior, malicious output, abuse of capabilities intentionally exposed by the pl ...[truncated 1669 chars]- Remediation
View remediation
Remediation Suggestions
- Bundle the reviewed
graphviz_component.wasmartifact directly in the skill package rather than downloading executable content at runtime. - If remote retrieval is unavoidable, reference an immutable Git commit or cryptographically versioned release instead of the mutable
mainbranch. - Publish an expected SHA-256 or stronger cryptographic digest in the reviewed skill and verify the downloaded bytes before execution. Abort execution if verification fails.
- Require a cryptographically signed release and validate the signature against a pinned, trusted public key.
- Pin and audit the exact version of
openclaw-wasm-sandbox, and document all host capabilities made available to WASM components. - Configure the sandbox with strict CPU, memory, execution-time, output-size, filesystem, and network limits. Expose no host interfaces beyond those required to transform DOT input into SVG output.
- Treat downloaded artifacts as untrusted until all integrity and authenticity checks complete, and do not overwrite a previously verified local artifact on verification failure.
- Bundle the reviewed
