The Control UI static file handler previously validated asset paths lexically and then served files with APIs that follow symbolic links. A symlink placed under the Control UI root could cause out-of-root file reads.
openclaw (npm)2026.2.21-2<=2026.2.21-22026.2.22The vulnerable flow was in src/gateway/control-ui.ts, where path.join(...) + string-prefix checks were followed by file reads that resolved symlinks. This allowed directory-confinement bypasses when symlinks existed inside the Control UI root.
The fix now enforces realpath containment and verifies file identity before serving Control UI assets and SPA fallback index.html.
7c500ff6236fa087ec1ec88696ca9f6881e90dc5patched_versions is pre-set to the planned next release (2026.2.22). After npm release is available, publish the advisory.
OpenClaw thanks @tdjackey for reporting.
{
"cwe_ids": [
"CWE-22"
],
"github_reviewed": true,
"github_reviewed_at": "2026-03-02T22:19:03Z",
"nvd_published_at": null,
"severity": "LOW"
}