{"id":"CVE-2026-31990","aliases":["GHSA-cfvj-7rx7-fc7c"],"url":"https://o3.security/vulnerability/CVE-2026-31990","summary":"OpenClaw < 2026.3.2 - Symlink Traversal in stageSandboxMedia Destination","details":"### Summary\n`stageSandboxMedia` allowed destination symlink traversal during media staging, which could overwrite files outside the sandbox workspace root.\n\n### Impact\nWhen sandbox media staging handled inbound files, destination writes under `media/inbound` were not destination-alias-safe. If a symlink existed in that destination path, the write could follow it and overwrite host files outside the intended sandbox workspace boundary.\n\n### Affected Packages / Versions\n- Package: `openclaw` (npm)\n- Latest published version checked: `2026.3.1`\n- Affected: `<= 2026.3.1`\n- Patched versions: `>= 2026.3.2` (released)\n\n### Root Cause\n`stageSandboxMedia` validated source paths but wrote destination files with a direct copy path that did not enforce destination boundary/alias checks.\n\n### Remediation\nThe fix routes staging writes through root-scoped safe write primitives for both local and SCP-staged attachments, preventing destination symlink traversal escapes.\n\n### Fix Commit(s)\n- `17ede52a4be3034f6ec4b883ac6b81ad0101558a`","published":"2026-03-19T01:00:49.811Z","modified":"2026-10-28T02:31:04.782611673Z","cvss":null,"epss":{"score":0.00134,"percentile":0.03187,"asOf":"2026-08-29"},"cisaKev":null,"exploitsKnown":0,"affectedPackages":[{"ecosystem":"npm","name":"openclaw","fixedVersion":"2026.3.2"}],"fix":{"url":"https://github.com/openclaw/openclaw/commit/17ede52a4be3034f6ec4b883ac6b81ad0101558a","label":"openclaw/openclaw@17ede52"},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/31xxx/CVE-2026-31990.json"},{"type":"ADVISORY","url":"https://github.com/openclaw/openclaw/security/advisories/GHSA-cfvj-7rx7-fc7c"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-31990"},{"type":"ADVISORY","url":"https://www.vulncheck.com/advisories/openclaw-symlink-traversal-in-stagesandboxmedia-destination"},{"type":"FIX","url":"https://github.com/openclaw/openclaw/commit/17ede52a4be3034f6ec4b883ac6b81ad0101558a"},{"type":"PACKAGE","url":"https://github.com/openclaw/openclaw"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-10-28T02:31:04.782611673Z"}}