<?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>Nextcloud-Mcp-Server - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/nextcloud-mcp-server/</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>Tue, 25 Aug 2026 18:48:33 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/nextcloud-mcp-server/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>Unauthenticated Vector Data Deletion in nextcloud-mcp-server via CVE-2026-55640</title><link>https://feed.craftedsignal.io/briefs/2026-08-nextcloud-mcp-server-auth-bypass/</link><pubDate>Tue, 25 Aug 2026 18:48:33 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-08-nextcloud-mcp-server-auth-bypass/</guid><description>An unauthenticated remote attacker can delete or corrupt semantic search vector embeddings in Qdrant by sending a crafted POST request to the /webhooks/nextcloud endpoint due to missing default authentication.</description><content:encoded><![CDATA[<p>The <code>nextcloud-mcp-server</code> application, specifically versions 0.117.1 and earlier, contains a critical authentication bypass vulnerability (CVE-2026-55640). The webhook receiver endpoint at <code>POST /webhooks/nextcloud</code> fails to enforce security checks by default because the <code>WEBHOOK_SECRET</code> configuration variable is not required at startup and defaults to <code>None</code>.</p>
<p>When this secret is unset, the server skips all authentication validation and proceeds to process incoming JSON payloads. An attacker can supply an arbitrary <code>user.uid</code> within the payload, which the server then uses to interact with the backend Qdrant database. This allows unauthorized parties to manipulate or delete vector embeddings associated with any user index. This vulnerability is significant as it requires no prior authentication or system access, and can be used to perform mass-deletion attacks, effectively destroying the semantic search capabilities of the target Nextcloud instance.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker performs network reconnaissance to identify instances of <code>nextcloud-mcp-server</code> listening on port 8000.</li>
<li>Attacker verifies the target is running a vulnerable version (&lt;= 0.117.1) where <code>WEBHOOK_SECRET</code> is unset.</li>
<li>Attacker crafts a malicious JSON payload formatted as an <code>OCP\Files\Events\Node\BeforeNodeDeletedEvent</code> webhook.</li>
<li>Attacker inserts a target <code>user.uid</code> and specific document ID into the JSON payload fields.</li>
<li>Attacker sends an unauthenticated <code>POST</code> request to <code>/webhooks/nextcloud</code> targeting the reachable endpoint.</li>
<li>The server application accepts the request due to the missing secret validation and passes the attacker-controlled <code>user_id</code> to the Qdrant database client.</li>
<li>The Qdrant backend executes the delete operation, removing the specific vector embeddings for the chosen user and document.</li>
<li>Attacker repeats this process across multiple document IDs or users to disrupt semantic search services (Denial of Service).</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation allows unauthenticated attackers to delete or corrupt the entire semantic search index for all users within the affected Qdrant instance. This results in a complete loss of search functionality, requiring costly recovery and re-indexing operations. The vulnerability affects any deployment that has not explicitly configured a <code>WEBHOOK_SECRET</code>, which is the default state for the application.</p>
<h2 id="recommendation">Recommendation</h2>
<ol>
<li>Upgrade <code>nextcloud-mcp-server</code> to the latest secure version immediately.</li>
<li>Enforce the <code>WEBHOOK_SECRET</code> configuration by adding a validation check in <code>config_validators.py</code> that raises a <code>ConfigurationError</code> if the secret is unset when vector sync is enabled.</li>
<li>Update <code>webhook_receiver.py</code> to reject all incoming requests with a 503 or 401 error code if the <code>WEBHOOK_SECRET</code> is not provided and validated via an HMAC-protected Authorization header.</li>
<li>Monitor web server logs for high volumes of <code>POST</code> requests to <code>/webhooks/nextcloud</code> originating from untrusted network segments.</li>
</ol>
]]></content:encoded><category domain="severity">critical</category><category domain="type">advisory</category></item></channel></rss>