Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach exposed /webhooks/nextcloud port
-
DeliveryForge webhook payload with victim user.uid
-
ExploitPOST unauthenticated deletion event
-
ExecutionServer passes uid to Qdrant
-
PersistDelete/re-index target embeddings
-
ImpactLoop over doc IDs to destroy index
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Authentication required for critical functions
MITRE ATT&CK
1 technique across 1 tactic: Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires that the webhook receiver be active and reachable AND that WEBHOOK_SECRET be unset - which is the default in versions <= 0.117.1, so no special configuration is needed beyond the endpoint being network-reachable to the attacker (advisory cites port 8000). No credentials, no user interaction, and no authenticated session are needed: the attacker fully controls the target identity via the payload's user.uid field. What LIMITS exploitation: the /webhooks/nextcloud endpoint must actually be exposed to the attacker's network path, and deployments that never mounted the webhook receiver (polling-only) or that sit behind a proxy restricting the endpoint to the Nextcloud host are not exploitable. On patched 0.117.2 the condition is closed entirely because an unset secret un-mounts the route and a set secret enforces Bearer auth. |
| Impact | This is a genuine high-priority issue for anyone who has enabled webhook-based vector sync, but its blast radius is bounded to search-index integrity/availability rather than data confidentiality. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N, C:N/I:H/A:H, score 9.1) is internally consistent with the description: no authentication, low complexity, no user interaction, and impact limited to corrupting/destroying vector data - confidentiality is correctly N since the attacker cannot read embeddings, only delete or re-queue them. The published PoC (no credentials, works against the default configuration) makes weaponization trivial, so real-world exploitability tracks the high CVSS rather than discounting it. No EPSS score, SSVC decision, or KEV entry was supplied; absent EPSS I cannot quantify exploitation probability, and absence from KEV means no confirmed active exploitation - treat exploitation likelihood as inferred-high from PoC availability, not measured. A key limiting factor tempers the raw score: exploitation requires that the webhook receiver actually be reachable and, in vulnerable versions, that WEBHOOK_SECRET was left unset (the default) AND the endpoint exposed to the attacker's network (advisory cites port 8000), so hardened or polling-only deployments are not exposed. Because impact is destructive to a rebuildable index (recoverable via full re-scan) rather than to primary user data, operators who expose the endpoint should patch urgently while those relying solely on the polling scanner are unaffected. |
| Exploit ScenarioDerived | An attacker who can reach the MCP server's webhook port (default 8000) sends an unauthenticated POST /webhooks/nextcloud with a forged BeforeNodeDeletedEvent payload setting user.uid to any target user and a chosen document id, and the server passes that identity straight to Qdrant, deleting the victim's embeddings. Scripting the request across a range of document IDs and user IDs destroys the entire semantic-search index, forcing a full re-scan to recover. A no-credentials PoC demonstrating exactly this is published in the GHSA advisory. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 25, 2026
Unauthenticated vector-store tampering in Nextcloud MCP Server before 0.117.2 lets any network attacker who can reach the /webhooks/nextcloud endpoint delete or force re-indexing of Qdrant semantic-search embeddings for arbitrary users. Because WEBHOOK_SECRET defaults to None and startup never enforces it, the webhook receiver processes forged POSTs and trusts the attacker-supplied user.uid, so looping over document IDs can wipe the entire search index for all users. A working proof-of-concept is published in the GHSA advisory; publicly available exploit code exists, though there is no public exploit identified in CISA KEV.
RemediationAI
Vendor-released patch: upgrade to nextcloud-mcp-server 0.117.2 (commit 4fc2b10945108cf1008ec9698291de6706ffcb73), which makes WEBHOOK_SECRET mandatory - when it is unset the /webhooks/nextcloud route is no longer mounted (404) and any request that reaches the handler is refused (503), and when set every delivery must carry a valid Authorization: Bearer <secret> header (mismatches rejected with 401). If you cannot upgrade immediately, the effective compensating control is to ensure vector sync runs via the polling scanner only and that the webhook endpoint is not exposed: leave WEBHOOK_SECRET unset does NOT protect pre-0.117.2 versions (that is the vulnerable default), so instead block external access to the MCP server's webhook port (advisory references port 8000) at the network/reverse-proxy layer and restrict /webhooks/nextcloud to the Nextcloud server's source address only - the trade-off is that legitimate webhook-driven sync must be reachable from Nextcloud, so use an allowlist rather than a full block. Setting WEBHOOK_SECRET to a strong value is the correct hardening once on a patched build; on unpatched builds it enables the auth check but you should still upgrade. Advisory and fix: https://github.com/cbcoutinho/nextcloud-mcp-server/security/advisories/GHSA-8vh3-g2qg-2h2c and https://github.com/cbcoutinho/nextcloud-mcp-server/commit/4fc2b10945108cf1008ec9698291de6706ffcb73.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in pypi
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The affected component is the webhook-based vector-sync path of an MCP (Model Context Protocol) server that bridges AI assistants to a Nextcloud instance and mirrors document changes into a Qdrant vector database for semantic search. Nextcloud emits webhook events (e.g. OCP\Files\Events\Node\BeforeNodeDeletedEvent) which the server receives at POST /webhooks/nextcloud, parsed in nextcloud_mcp_server/vector/webhook_parser.py and handled in webhook_receiver.py's handle_nextcloud_webhook(). The root cause is CWE-306 (Missing Authentication for a Critical Function): the Bearer-token check is wrapped in if secret: and the config field webhook_secret defaults to None with no startup validator, so when unset the auth branch is skipped and requests are processed after only a warning log. Compounding this, payload['user']['uid'] is consumed as-is for all Qdrant delete/index operations with no cross-check against an authenticated session, so the identity a request acts on is entirely attacker-chosen.
Know when Nextcloud gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
Unauthenticated network request with no user interaction (AV:N/AC:L/PR:N/UI:N); attacker can delete/corrupt any user's embeddings (I:H) and destroy the index (A:H) but cannot read data (C:N).
Primary rating from Vendor (github).
CVSS VectorVendor: github
Lifecycle Timeline
2DescriptionCVE.org
Nextcloud MCP Server is a production-ready MCP server that connects AI assistants to a Nextcloud instance. Prior to 0.117.2, the POST /webhooks/nextcloud endpoint in nextcloud_mcp_server/vector/webhook_receiver.py has no authentication by default because WEBHOOK_SECRET defaults to None and startup validation does not require it. When WEBHOOK_SECRET is unset, handle_nextcloud_webhook() accepts unauthenticated requests. The payload["user"]["uid"] field parsed in nextcloud_mcp_server/vector/webhook_parser.py is attacker-controlled and is used without an authenticated-session cross-check for Qdrant operations, allowing a network attacker to delete or trigger re-indexing of vector embeddings for any user and to destroy the semantic search index by sending forged deletion events. This issue is fixed in version 0.117.2.
Executive ViewAI
Nextcloud MCP Server versions before 0.117.2 contain an unauthenticated vulnerability enabling attackers to delete or force re-indexing of semantic-search embeddings for all users, disabling search functionality organization-wide; publicly available exploit code exists. This disrupts user productivity and system usability across the organization. Immediate patching to version 0.117.2 is critical.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Nextcloud server is an open source home cloud implementation. Rated high severity (CVSS 8.8), this vulnerability is remo
A too lax check in Nextcloud Talk 6.0.4, 7.0.2 and 8.0.7 allowed a code injection when a not correctly sanitized talk co
Nextcloud Server provides data storage for Nextcloud, an open source cloud platform. Rated critical severity (CVSS 9.8),
Unauthenticated OS command injection in the Collabora Online Built-in CODE Server Nextcloud app (richdocumentscode) befo
Nextcloud Server before 9.0.54 and 10.0.1 & ownCloud Server before 9.1.2, 9.0.6, and 8.2.9 suffer from SMB User Authenti
NextCloud Cookbook is a recipe library app. Rated high severity (CVSS 8.8), this vulnerability is remotely exploitable,
Nextcloud server is an open source home cloud implementation. Rated high severity (CVSS 8.8), this vulnerability is remo
Nextcloud Desktop Client prior to 3.1.3 is vulnerable to resource injection by way of missing validation of URLs, allowi
lib/Controller/ExtractionController.php in the Extract add-on before 1.2.0 for Nextcloud allows Remote Code Execution vi
Authorization bypass in Windmill 1.56.0-1.614.0 enables Operator role users to escalate privileges to remote code execut
Insufficient protection of the server-side encryption keys in Nextcloud Server 19.0.1 allowed an attacker to replace the
Improper access control in Groupfolders app 4.0.3 allowed to delete hidden directories when when renaming an accessible
EUVD-2026-65596
GHSA-8vh3-g2qg-2h2c
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB