CVE-2026-31990: OpenClaw: symlink traversal enables arbitrary file write
MEDIUMOpenClaw, an AI agent framework, contains a path-traversal flaw in its stageSandboxMedia function that fails to validate symlinks before following them during media staging, allowing a low-privileged local user to overwrite arbitrary host files by planting symlinks in the media/inbound directory. Although rated CVSS 6.1 (medium), this CVE sits in the top 3% of all CVEs by EPSS exploitation likelihood, and its trivial exploitation profile—local access, low privileges, no user interaction, low complexity—makes it a realistic threat in shared or multi-tenant AI agent environments. In agentic deployments, overwriting configuration files, SSH keys, or agent tool definitions can directly enable persistent backdoors or escalation to full host compromise, multiplying the blast radius well beyond what the moderate severity label suggests. Organizations should upgrade OpenClaw to 2026.3.2 immediately; as an interim control, restrict write permissions on the media/inbound staging directory and alert on symlink creation within sandbox paths.
What is the risk?
CVSS 6.1 materially underestimates operational risk in AI agent contexts. CWE-59 (Improper Link Resolution) requires no exploitation complexity beyond local access, placing this within reach of malicious insiders, compromised CI/CD workers, or any process sharing the filesystem with OpenClaw. The EPSS 97th percentile signals that this vulnerability class sees active exploitation at a higher rate than 97% of all disclosed CVEs—despite the low absolute score, the relative signal is strong. The ai_agent classification means OpenClaw likely runs with permissions sufficient to modify agent configurations, model artifacts, or runtime credentials, all high-value targets. The 396 other CVEs in the same package indicate systemic security debt and a historically targeted component.
How does the attack unfold?
What systems are affected?
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| OpenClaw | pip | — | No patch |
Do you use OpenClaw? You're affected.
How severe is it?
What is the attack surface?
What should I do?
5 steps-
Patch: Upgrade OpenClaw to version 2026.3.2 or later (commit 17ede52 resolves the symlink validation gap).
-
Workaround: Restrict write permissions on media/inbound to the OpenClaw service account only; consider mounting it as a separate filesystem namespace with no-follow-symlinks enforcement (e.g., bind mount with MS_NOSYMFOLLOW on Linux).
-
Detection: Audit staging directories with 'find /path/to/media/inbound -type l' and deploy inotifywait or auditd rules to alert on symlink creation under sandbox paths.
-
Containment: Run OpenClaw within a container with seccomp or AppArmor profiles that deny symlink following outside the sandbox workspace boundary.
-
Verify patch: After upgrade, confirm stageSandboxMedia rejects symlinks pointing outside the workspace by testing with a controlled symlink in a non-production environment.
What does CISA's SSVC say?
Source: CISA Vulnrichment (SSVC v2.0). Decision based on the CISA Coordinator decision tree.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-31990?
OpenClaw, an AI agent framework, contains a path-traversal flaw in its stageSandboxMedia function that fails to validate symlinks before following them during media staging, allowing a low-privileged local user to overwrite arbitrary host files by planting symlinks in the media/inbound directory. Although rated CVSS 6.1 (medium), this CVE sits in the top 3% of all CVEs by EPSS exploitation likelihood, and its trivial exploitation profile—local access, low privileges, no user interaction, low complexity—makes it a realistic threat in shared or multi-tenant AI agent environments. In agentic deployments, overwriting configuration files, SSH keys, or agent tool definitions can directly enable persistent backdoors or escalation to full host compromise, multiplying the blast radius well beyond what the moderate severity label suggests. Organizations should upgrade OpenClaw to 2026.3.2 immediately; as an interim control, restrict write permissions on the media/inbound staging directory and alert on symlink creation within sandbox paths.
Is CVE-2026-31990 actively exploited?
No confirmed active exploitation of CVE-2026-31990 has been reported, but organizations should still patch proactively.
How to fix CVE-2026-31990?
1. Patch: Upgrade OpenClaw to version 2026.3.2 or later (commit 17ede52 resolves the symlink validation gap). 2. Workaround: Restrict write permissions on media/inbound to the OpenClaw service account only; consider mounting it as a separate filesystem namespace with no-follow-symlinks enforcement (e.g., bind mount with MS_NOSYMFOLLOW on Linux). 3. Detection: Audit staging directories with 'find /path/to/media/inbound -type l' and deploy inotifywait or auditd rules to alert on symlink creation under sandbox paths. 4. Containment: Run OpenClaw within a container with seccomp or AppArmor profiles that deny symlink following outside the sandbox workspace boundary. 5. Verify patch: After upgrade, confirm stageSandboxMedia rejects symlinks pointing outside the workspace by testing with a controlled symlink in a non-production environment.
What systems are affected by CVE-2026-31990?
This vulnerability affects the following AI/ML architecture patterns: agent frameworks, AI agent deployments, multi-tenant AI pipelines.
What is the CVSS score for CVE-2026-31990?
CVE-2026-31990 has a CVSS v3.1 base score of 6.1 (MEDIUM). The EPSS exploitation probability is 0.13%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0081 Modify AI Agent Configuration AML.T0105 Escape to Host AML.T0112.000 Local AI Agent Compliance Controls Affected
What are the technical details?
Original Advisory
OpenClaw versions prior to 2026.3.2 contain a vulnerability in the stageSandboxMedia function in which it fails to validate destination symlinks during media staging, allowing writes to follow symlinks outside the sandbox workspace. Attackers can exploit this by placing symlinks in the media/inbound directory to overwrite arbitrary files on the host system outside sandbox boundaries.
Exploitation Scenario
A low-privileged attacker with local filesystem access—such as a compromised data pipeline worker co-located with the OpenClaw agent—creates a symlink at media/inbound/update.json pointing to /home/openclaw/.ssh/authorized_keys. When OpenClaw's stageSandboxMedia function processes the inbound media queue during normal agent operation, it follows the symlink without validation and overwrites the SSH authorized_keys file with the attacker's public key. The attacker then authenticates via SSH using the injected key, gaining interactive host access under the OpenClaw service account. From this foothold, they modify agent tool definitions to achieve persistent code execution on every subsequent agent invocation, exfiltrate model artifacts, or pivot to other services accessible from the host.
Weaknesses (CWE)
CWE-59 — Improper Link Resolution Before File Access ('Link Following'): The product attempts to access a file based on the filename, but it does not properly prevent that filename from identifying a link or shortcut that resolves to an unintended resource.
- [Architecture and Design] Follow the principle of least privilege when assigning access rights to entities in a software system. Denying access to a file can prevent an attacker from replacing that file with a link to a sensitive file. Ensure good compartmentalization in the system to provide protected areas that can be trusted.
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:L References
Timeline
Related Vulnerabilities
CVE-2026-33579 9.9 OpenClaw: scope bypass escalates low-priv to admin
Same package: openclaw CVE-2026-32922 9.9 OpenClaw: privilege escalation to RCE via token scope bypass
Same package: openclaw CVE-2026-30741 9.8 OpenClaw: RCE via request-side prompt injection
Same package: openclaw CVE-2026-32038 9.8 OpenClaw: sandbox bypass enables container lateral movement
Same package: openclaw CVE-2026-53838 9.8 OpenClaw: approval scope bypass via reconnection state
Same package: openclaw