{"id":"GHSA-rx3g-mvc3-qfjf","summary":"OpenClaw's avatar symlink traversal can expose out-of-workspace local files","details":"### Summary\nOpenClaw avatar handling allowed a symlink traversal path that could expose local files outside an agent workspace through gateway avatar surfaces.\n\n### Affected Packages / Versions\n- Package: `openclaw` (npm)\n- Affected versions: `\u003c= 2026.2.21`, plus prereleases `2026.2.21-1` and `2026.2.21-2`\n- Latest published version at triage time (2026-02-22): `2026.2.21-2` (affected)\n- Planned patched version (pre-set for release workflow): `2026.2.22`\n\n### Details\nIn vulnerable builds, local avatar resolution could follow symlinks and return file bytes from outside the configured workspace boundary.\n\nThe issue was hardened in two paths:\n1. Gateway avatar metadata resolution now enforces canonical containment, `O_NOFOLLOW`, and fd/file-identity checks.\n2. Control UI avatar serving now rejects symlink paths and enforces fd/file-identity and size checks before reads.\n\n### Fix Commit(s)\n- `3d0337504349954237d09e4d957df5cb844d5e77`\n- `6970c2c2db3ee069ef0fff0ade5cfbdd0134f9d2`\n\n### Release Process Note\n`patched_versions` is pre-set to `\u003e= 2026.2.22` so after npm release, the remaining action is to publish this advisory.\n\n### Impact\nConfidentiality impact only: local files readable by the OpenClaw process could be disclosed via avatar response surfaces.\n\nOpenClaw thanks @tdjackey for reporting.","aliases":["CVE-2026-32024"],"modified":"2026-03-20T21:59:36.321988Z","published":"2026-03-03T00:20:18Z","database_specific":{"github_reviewed":true,"github_reviewed_at":"2026-03-03T00:20:18Z","nvd_published_at":"2026-03-19T22:16:36Z","cwe_ids":["CWE-22","CWE-59"],"severity":"MODERATE"},"references":[{"type":"WEB","url":"https://github.com/openclaw/openclaw/security/advisories/GHSA-rx3g-mvc3-qfjf"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-32024"},{"type":"WEB","url":"https://github.com/openclaw/openclaw/commit/3d0337504349954237d09e4d957df5cb844d5e77"},{"type":"WEB","url":"https://github.com/openclaw/openclaw/commit/6970c2c2db3ee069ef0fff0ade5cfbdd0134f9d2"},{"type":"PACKAGE","url":"https://github.com/openclaw/openclaw"},{"type":"WEB","url":"https://www.vulncheck.com/advisories/openclaw-symlink-traversal-in-avatar-handling"}],"affected":[{"package":{"name":"openclaw","ecosystem":"npm","purl":"pkg:npm/openclaw"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"2026.2.22"}]}],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/03/GHSA-rx3g-mvc3-qfjf/GHSA-rx3g-mvc3-qfjf.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N"},{"type":"CVSS_V4","score":"CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X"}]}