highVulnerability

GHSA-jq4x-98m3-ggq6

ZDI-CAN-29312: OpenClaw Canvas Path Traversal Information Disclosure Vulnerability -- ABSTRACT ------------------------------------- Trend Micro's Zero Day Initiative has identified a vulnerability affecting the following products: OpenClaw - OpenClaw -- VULNERABILITY DETAILS ------------------------ * Version tested: openclaw 2026.2.17 * Platform tested: macOS 26.3 --- # Analysis ## Description The OpenClaw gateway's `canvas` tool accepts an `a2ui_push` action with a `jsonlPath` parameter that specifies a filesystem path to read. The gateway reads this file using `fs.readFile()` with no path validation, canonicalization, or directory restriction. An authenticated attacker can supply an arbitrary absolute or relative path to read any file accessible to the gateway process. The file contents are forwarded to the connected node client via the `canvas.a2ui.pushJSONL` WebSocket command. The gateway itself returns `{ ok: true }` to the HTTP caller, confirming the file was read and transmitted. ## Root Cause In `src/agents/tools/canvas-tool.ts`, the `a2ui_push` action handler reads a file from disk without any path restrictions: ```typescript case "a2ui_push": { const jsonl = typeof params.jsonl === "string" && params.jsonl.trim() ? params.jsonl : typeof params.jsonlPath === "string" && params.jsonlPath.trim() ? await fs.readFile(params.jsonlPath.trim(), "utf8") // <-- NO PATH VALIDATION : ""; if (!jsonl.trim()) { throw new Error("jsonl or jsonlPath required"); } await invoke("canvas.a2ui.pushJSONL", { jsonl }); return jsonResult({ ok: true }); } ``` The `jsonlPath` parameter is passed directly to `fs.readFile()` after only a `.trim()` call. There is: - No allowlist of permitted directories - No canonicalization (`path.resolve` / `realpath`) - No check against directory traversal sequences (`..`) - No restriction to `.jsonl` file extensions ## Attack Scenario ### Prompt Injection (Primary) OpenClaw is an AI age

Properties

ghsa_id
GHSA-jq4x-98m3-ggq6
severity
high
summary
OpenClaw Canvas Path Traversal Information Disclosure Vulnerability
cve_id
GHSA-jq4x-98m3-ggq6
is_ghsa_only
true
ghsa_published
2026-03-02T22:32:23Z
source_url
https://github.com/advisories/GHSA-jq4x-98m3-ggq6
ghsa_updated
2026-03-02T22:32:24Z

Related Entities (3)

AFFECTS (1)

[Software]npm/OpenClaw

HAS_WEAKNESS (1)

[Weakness]Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')

REPORTED_BY (1)

[Source]GitHub Advisory Database

Explore deeper with Ninja Signal's threat intelligence graph

GHSA-jq4x-98m3-ggq6 — Ninja Signal Threat Intelligence | Ninja Signal