<?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>Filebrowser (&lt;= 2.63.15) - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/filebrowser--2.63.15/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata. Fed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Mon, 20 Jul 2026 21:23:50 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/filebrowser--2.63.15/feed.xml" rel="self" type="application/rss+xml"/><item><title>File Browser Symlink Following Vulnerability Allows Out-of-Scope File Deletion (CVE-2026-55667)</title><link>https://feed.craftedsignal.io/briefs/2026-07-filebrowser-symlink/</link><pubDate>Mon, 20 Jul 2026 21:23:50 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-07-filebrowser-symlink/</guid><description>A File Browser user with only `Create` permission can exploit CVE-2026-55667, an incomplete fix for CVE-2026-54094, to delete arbitrary files and directories outside their authorized scope by abusing the `ScopedFs.RemoveAll` function's symlink-following behavior during failed upload cleanup, leading to data loss, cross-tenant data deletion, or denial of service.</description><content:encoded><![CDATA[<p>A critical vulnerability, tracked as CVE-2026-55667, has been identified in File Browser versions up to 2.63.15, allowing a non-admin user with only <code>Create</code> permissions to delete arbitrary files and directories outside their designated scope. This flaw is an incomplete fix for CVE-2026-54094 and stems from the <code>ScopedFs.RemoveAll</code> function's failure to properly guard against symlink following during the cleanup process for failed uploads. Attackers can leverage a pre-existing, out-of-band planted symlink within their scope to trick the application into deleting sensitive files, potentially including other tenants' data or the application's own database. This can lead to data integrity compromises, cross-tenant data deletion, and a full denial of service for the File Browser instance. The vulnerability affects instances deployed on Linux-based systems where symlink creation and following are possible.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li><strong>Precondition Fulfillment</strong>: An attacker ensures an escaping directory symlink (e.g., <code>/scope/link</code> pointing to <code>/out-of-scope</code>) is present within the user's File Browser scope. This symlink must be planted out-of-band as File Browser offers no symlink creation API.</li>
<li><strong>Initial Access</strong>: The attacker obtains authenticated access as a non-admin File Browser user with <code>Perm.Create=true</code> enabled and <code>Perm.Delete=false</code> (delete permission is not required for exploitation).</li>
<li><strong>Malicious Request</strong>: The attacker sends an HTTP POST request to the File Browser <code>/api/resources</code> endpoint, attempting to &quot;upload&quot; a file to a path under the controlled symlink (e.g., <code>POST /api/resources/link/victim.txt</code>).</li>
<li><strong>Containment Bypass Attempt</strong>: File Browser's <code>resourcePostHandler</code> attempts to process the upload. The initial file info validation (<code>NewFileInfo</code>) for the out-of-scope target fails, and the subsequent <code>writeFile</code> operation is correctly blocked by <code>ScopedFs</code> containment, resulting in a 403 HTTP response.</li>
<li><strong>Failure-Cleanup Trigger</strong>: Due to the failed write, the <code>resourcePostHandler</code> triggers an internal cleanup routine at <code>http/resource.go:173</code>, which calls <code>d.user.Fs.RemoveAll(r.URL.Path)</code> on the user-controlled, unvalidated path (<code>/link/victim.txt</code>).</li>
<li><strong>Symlink Dereference and Deletion</strong>: The <code>ScopedFs.RemoveAll</code> function, which uniquely lacks the necessary <code>guard()</code> mechanism unlike other methods, dereferences the pre-existing symlink (e.g., <code>/link</code> pointing to <code>/tmp/fb-out</code>).</li>
<li><strong>Impact Achieved</strong>: The <code>RemoveAll</code> function proceeds to delete the target file (e.g., <code>/tmp/fb-out/victim.txt</code>) or recursively delete contents if the target is a directory, leading to data loss or denial of service.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of CVE-2026-55667 allows an authenticated File Browser user with only <code>Create</code> permissions to destroy any file or directory that the File Browser process has access to, provided an escaping symlink exists within their scope. This leads to severe consequences such as data integrity loss, cross-tenant data deletion in multi-tenant environments, and full denial of service if the application's database directory is targeted. The vulnerability bypasses both the <code>ScopedFs</code> boundary designed to contain user actions and the <code>Perm.Delete</code> gate, enabling low-privileged users to perform high-privileged destructive operations.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Patch CVE-2026-55667 by upgrading File Browser to a version greater than 2.63.15, which addresses the incomplete fix of CVE-2026-54094.</li>
<li>Regularly review file system permissions for the File Browser process to ensure it operates with the principle of least privilege, reducing the blast radius of potential exploits.</li>
<li>Ensure robust backup and recovery procedures are in place for File Browser data and any managed files to mitigate the impact of data deletion.</li>
</ul>
]]></content:encoded><category domain="severity">medium</category><category domain="type">advisory</category><category>vulnerability</category><category>file-browser</category><category>symlink-attack</category><category>data-loss</category><category>denial-of-service</category></item></channel></rss>