<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Symlink-Traversal — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/tags/symlink-traversal/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata — refreshed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Fri, 27 Mar 2026 14:00:00 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/tags/symlink-traversal/feed.xml" rel="self" type="application/rss+xml"/><item><title>OpenClaw Symlink Traversal via IDENTITY.md appendFile in agents.create/update</title><link>https://feed.craftedsignal.io/briefs/2026-03-openclaw-symlink/</link><pubDate>Fri, 27 Mar 2026 14:00:00 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-03-openclaw-symlink/</guid><description>OpenClaw is vulnerable to symlink traversal via IDENTITY.md appendFile in agents.create/update. An attacker who can place a symlink in the agent workspace can hijack the IDENTITY.md path to append attacker-controlled content to arbitrary files on the system leading to remote code execution, persistent code execution, unauthorized SSH access, or service disruption.</description><content:encoded><![CDATA[<p>The <code>openclaw</code> npm package is vulnerable to a symlink traversal vulnerability (CVE-2026-32013) affecting versions 2026.2.22 and earlier. The vulnerability lies in the <code>agents.create</code> and <code>agents.update</code> handlers within the <code>src/gateway/server-methods/agents.ts</code> file. These handlers use <code>fs.appendFile</code> on the <code>IDENTITY.md</code> file without proper symlink containment checks. An attacker capable of placing a symlink within the agent workspace can redirect the <code>IDENTITY.md</code> path to point to arbitrary files on the system, allowing them to append attacker-controlled content to these files. This can lead to serious consequences such as remote code execution by modifying <code>/etc/crontab</code>, persistent code execution by modifying shell configuration files like <code>~/.bashrc</code>, or unauthorized SSH access by modifying <code>~/.ssh/authorized_keys</code>.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>The attacker gains initial access to the agent workspace.</li>
<li>The attacker plants a symbolic link named <code>IDENTITY.md</code> within the agent workspace. This symlink points to a sensitive system file, such as <code>/etc/crontab</code> or <code>~/.ssh/authorized_keys</code>.</li>
<li>The <code>ensureAgentWorkspace</code> function is called, but the exclusive-create flag (<code>wx</code>) skips creation due to the existing symlink (EEXIST error).</li>
<li>The attacker triggers the <code>agents.create</code> or <code>agents.update</code> API endpoint, for example, by sending an HTTP POST request.</li>
<li>The <code>agents.create</code> or <code>agents.update</code> handler constructs the path to <code>IDENTITY.md</code> using <code>path.join(workspaceDir, DEFAULT_IDENTITY_FILENAME)</code>.</li>
<li>The vulnerable <code>fs.appendFile</code> function is called to append agent metadata (name, emoji, avatar) to the <code>IDENTITY.md</code> file. Because <code>fs.appendFile</code> follows symlinks, the content is written to the attacker-controlled target file.</li>
<li>Attacker-controlled data is appended to the target file.</li>
<li>If the target file is a cron configuration file, this leads to remote code execution. If it&rsquo;s an SSH authorized_keys file, this leads to unauthorized access.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation allows an attacker to append attacker-controlled content to arbitrary files on the system. This can lead to:</p>
<ul>
<li><strong>Remote Code Execution:</strong> By appending malicious entries to <code>/etc/crontab</code> or user crontab files.</li>
<li><strong>Persistent Code Execution:</strong> By modifying shell configuration files like <code>~/.bashrc</code> or <code>~/.profile</code>.</li>
<li><strong>Unauthorized SSH Access:</strong> By appending SSH keys to <code>~/.ssh/authorized_keys</code>.</li>
<li><strong>Service Disruption:</strong> By modifying application configuration files.</li>
</ul>
<p>The vulnerability affects <code>openclaw</code> versions 2026.2.22 and earlier, and no patches are currently available. The number of affected systems depends on the adoption rate of the <code>openclaw</code> package.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Monitor file creation events within agent workspace directories for the creation of symbolic links using file_event logs.</li>
<li>Implement and deploy the provided Sigma rule to detect exploitation attempts by monitoring <code>fs.appendFile</code> calls related to IDENTITY.md without symlink resolution.</li>
<li>Restrict access to the agent workspace directory to prevent attackers from planting symlinks.</li>
<li>Upgrade to a patched version of <code>openclaw</code> when available.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>openclaw</category><category>symlink-traversal</category><category>vulnerability</category><category>npm</category><category>rce</category><category>persistence</category></item></channel></rss>