<?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/" xmlns:webfeeds="http://webfeeds.org/rss/1.0"><channel><title>@Nocobase/Server (&lt; 2.1.5) - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/@nocobase/server--2.1.5/</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>Thu, 20 Aug 2026 19:13:00 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/@nocobase/server--2.1.5/feed.xml" rel="self" type="application/rss+xml"/><image><url>https://feed.craftedsignal.io/favicon-32x32.png</url><title>CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/</link><width>32</width><height>32</height></image><webfeeds:icon>https://feed.craftedsignal.io/favicon.svg</webfeeds:icon><item><title>NocoBase Authenticated Remote Code Execution via File Write and LFI Chain</title><link>https://feed.craftedsignal.io/briefs/2026-08-nocobase-rce/</link><pubDate>Thu, 20 Aug 2026 19:13:00 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-08-nocobase-rce/</guid><description>An authenticated admin can achieve remote code execution in NocoBase prior to v2.1.5 by chaining arbitrary file uploads via storage root manipulation with a local file inclusion vulnerability in the plugin manager.</description><content:encoded><![CDATA[<p>NocoBase versions prior to 2.1.5 contain a high-severity authentication-based remote code execution (RCE) chain. The vulnerability arises from two distinct flaws in the API surface that allow an authenticated administrative user to bypass file system protections. First, the <code>storages:update</code> API fails to validate the <code>documentRoot</code> parameter, enabling an attacker to redirect the application's file storage root to arbitrary locations on the host disk, including system or application directories. Second, the <code>pm:enable</code> endpoint performs an unsanitized <code>require()</code> call on a user-supplied <code>filterByTk</code> parameter, acting as a local file inclusion (LFI) primitive. By uploading a malicious JavaScript file to the application directory using the first vulnerability and subsequently triggering it via the LFI endpoint, an attacker can execute arbitrary code within the Node.js server process. The LFI primitive can also be exploited independently to induce error-based disclosure of sensitive system files.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker authenticates to the NocoBase instance with administrative credentials.</li>
<li>Attacker queries the <code>/api/storages</code> endpoint to identify the <code>filterByTk</code> ID for the active local storage configuration.</li>
<li>Attacker sends a POST request to <code>/api/storages:update</code> with a crafted <code>documentRoot</code> parameter set to the application's root directory (e.g., &quot;.&quot;).</li>
<li>Attacker uploads a malicious Node.js payload via the <code>/api/attachments:upload</code> endpoint, which is now saved to the application's base path due to the modified <code>documentRoot</code>.</li>
<li>Attacker calls the <code>/api/pm:enable</code> endpoint, supplying the path to the previously uploaded malicious file in the <code>filterByTk</code> parameter.</li>
<li>The application backend passes the unsanitized path directly to <code>require()</code>, executing the uploaded JavaScript payload.</li>
<li>The malicious code executes with the privileges of the NocoBase server process, achieving persistent RCE.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation grants an authenticated attacker full remote code execution on the underlying host. Given that NocoBase often runs with elevated privileges (e.g., as root in default Docker configurations), this leads to a complete compromise of the application and the host server. Additionally, the LFI primitive allows for the unauthorized reading of sensitive files from the server's filesystem, facilitating further reconnaissance or credential theft.</p>
<h2 id="recommendation">Recommendation</h2>
<ol>
<li>Immediately upgrade all NocoBase deployments to version 2.1.5 or later to resolve the missing input validation in the storage and plugin management components.</li>
<li>Audit administrative access logs for unauthorized access to the <code>storages:update</code> and <code>pm:enable</code> endpoints.</li>
<li>Restrict access to administrative API endpoints to trusted management networks.</li>
<li>Deploy the suggested Sigma rule to monitor for unusual <code>require()</code> activity originating from the plugin manager path.</li>
</ol>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>remote-code-execution</category><category>lfi</category><category>nocobase</category><category>authentication-bypass</category></item></channel></rss>