CVE-2026-26329: OpenClaw has a path traversal in browser upload allows local file read
Summary Authenticated attackers can read arbitrary files from the Gateway host by supplying absolute paths or path traversal sequences to the browser tool's upload action. The server passed these paths to Playwright's setInputFiles() APIs without restricting them to a safe root.
Published Feb 18, 2026 · Updated Feb 20, 2026
Affected packages
openclaw
- Ecosystem
- npm
- Affected
- < 2026.2.14
- Fixed in
- 2026.2.14
- Check
npm ls openclaw
Advisory details
From the GitHub Advisory Database (CC BY 4.0).
Summary
Authenticated attackers can read arbitrary files from the Gateway host by supplying absolute paths or path traversal sequences to the browser tool's upload action. The server passed these paths to Playwright's setInputFiles() APIs without restricting them to a safe root.
Severity remains High due to the impact (arbitrary local file read on the Gateway host), even though exploitation requires authenticated access.
Exploitability / Preconditions
This is not a "drive-by" issue.
An attacker must:
- Reach the Gateway HTTP surface (or otherwise invoke the same browser control hook endpoints).
- Present valid Gateway auth (bearer token / password), as required by the Gateway configuration.
- In common default setups, the Gateway binds to loopback and the onboarding wizard generates a gateway token even for loopback.
- Have the
browsertool permitted by tool policy for the target session/context (and have browser support enabled).
If an operator exposes the Gateway beyond loopback (LAN/tailnet/custom bind, reverse proxy, tunnels, etc.), the impact increases accordingly.
Affected Packages / Versions
- Package:
openclaw(npm) - Vulnerable:
< 2026.2.14(includes latest published2026.2.13) - Patched:
>= 2026.2.14(planned next release)
Details
Entry points:
POST /tools/invokewith{"tool":"browser","action":"upload",...}POST /hooks/file-chooser(browser control hook)
When the upload paths are not validated, Playwright reads the referenced files from the local filesystem and attaches them to a page-level <input type="file">. Contents can then be exfiltrated by page JavaScript (e.g. via FileReader) or via agent/browser snapshots.
Impact: arbitrary local file read on the Gateway host (confidentiality impact).
Fix
Upload paths are now confined to OpenClaw's temp uploads root (DEFAULT_UPLOAD_DIR) and traversal/escape paths are rejected.
This fix was implemented internally; the reporter provided a clear reproduction and impact analysis.
Fix commit(s):
- 3aa94afcfd12104c683c9cad81faf434d0dadf87
Thanks @p80n-sec for reporting.
Credited to p80n-sec.
References
- https://github.com/openclaw/openclaw/security/advisories/GHSA-cv7m-c9jx-vg7q
- https://github.com/openclaw/openclaw/commit/3aa94afcfd12104c683c9cad81faf434d0dadf87
- https://github.com/openclaw/openclaw/releases/tag/v2026.2.14
- https://nvd.nist.gov/vuln/detail/CVE-2026-26329
- https://github.com/advisories/GHSA-cv7m-c9jx-vg7q
How this page is made: the data panel comes from the GitHub Advisory Database, CISA’s KEV catalog, the NVD and FIRST EPSS, and updates twice a day. No analysis has been written for this entry yet. Methodology
More OpenClaw vulnerabilities
All OpenClaw entriesCVE-2026-35630
OpenClaw: QQBot native approval buttons did not enforce configured approver identity
high8.0Jul 2, 2026CVE-2026-53806
OpenClaw: Combined POSIX shell options could confuse exec revalidation
high8.8Jul 2, 2026CVE-2026-53809
OpenClaw: Embedded runner policy could be confused by provider aliases
medium3.8Jul 2, 2026CVE-2026-53810
OpenClaw's marketplace runtime extension metadata could point at unscanned payloads
high8.8Jul 2, 2026CVE-2026-53811
OpenClaw: Matrix allowFrom could bind to mutable display names
high8.8Jul 2, 2026CVE-2026-53812
OpenClaw's browser act interactions could bypass private-network navigation checks
medium7.7Jul 2, 2026
