Vibe Security Radar
Back to Vulnerabilities

CVE-2026-31990

openclaw/openclaw
Mar 19, 2026CWE-59
TypeScript
Verified by gpt-5.4-high
Severity
MEDIUM6.9
Verdict
CONFIRMED
0.95 confidence
AI Tool
Claude CodeClaude Code

Signal from PR description only — not from commit metadata

Language
TypeScript

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.

How AI Introduced This

AI-authored code contributed via commit 7a9ff182608b0c083ed57e3f199495ac93f4a079, which added remote attachment staging that writes directly to the chosen destination path with `scpFile(..., dest)` and preserved the same unsafe destination-write design for local copies, all without symlink-safe destination validation. The original sandbox overwrite flaw was introduced earlier by human-authored commit ea018a68ccb92dbc735bc1df9880d5c95c63ca35, but the AI commit extended and reaffirmed the vulnerable staging logic, so AI was part of the causal chain.

Attribution Chain
Advisory
GitHub Advisory
Fix Commit
17ede52— openclaw/openclaw
git blame
src/auto-reply/reply/stage-sandbox-media.ts
Bug-Introducing Commit
Bug-Introducing Commits(1)

iMessage: Add remote attachment support for VM/SSH deployments

Tyler YustJan 16, 2026src/auto-reply/reply/stage-sandbox-media.tsBlame: 100%

Deep Verification

by GPT-5.4
CONFIRMED0.95
43 tool calls
95%

This AI-authored commit added the remote-media branch in `stageSandboxMedia`, including `await scpFile(ctx.MediaRemoteHost, source, dest);`, where `dest` is the sandbox staging path and no destination symlink checks are performed. Its diff also rewrote the local staging block into the new conditional while retaining the same direct write-to-`dest` behavior, so it preserved the unsafe design and introduced a second vulnerable write path that the fix later replaced with temp-file staging plus `writeFileWithinRoot`. The screening note was directionally correct: this commit does directly touch the vulnerable function and meaningfully contributes to the flaw, even though it is not the earliest origin.

AI Signals(1)
Commit7a9ff18
Claude CodePR body keywordGenerated with [Claude Code]90%
Fix Commits(1)