Skip to main content

Nextcloud MCP Server CVE-2026-55640

| EUVDEUVD-2026-65596 CRITICAL
Missing Authentication for Critical Function (CWE-306)
2026-08-25 security-advisories@github.com GHSA-8vh3-g2qg-2h2c
9.1
CVSS 3.1 · Vendor: github
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Reach exposed /webhooks/nextcloud port
  2. Delivery
    Forge webhook payload with victim user.uid
  3. Exploit
    POST unauthenticated deletion event
  4. Execution
    Server passes uid to Qdrant
  5. Persist
    Delete/re-index target embeddings
  6. Impact
    Loop 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.

Act Now Prioritize within 24-48h. Why: CRITICAL severity + public POC available.
Patch available 0.5% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

nextcloud-mcp-server < 0.117.2

Affected Packages

pypi nextcloud-mcp-server fix: 0.117.2

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

Vendor (github) PRIMARY 9.1 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
vuln.today AI 9.1 CRITICAL

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).

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
High
Availability
High

Lifecycle Timeline

2
Patch available
Aug 25, 2026 - 18:17 EUVD
CVE Published
Aug 25, 2026 - 16:16 cve.org
CRITICAL 9.1

DescriptionCVE.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

Why It Matters

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.

Business Impact: Severe
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.5%
Top 60% exploitable
Prevalence
Low
niche AI-assistant bridge for Nextcloud, limited production deployment
Threat Intel
1
1 source
Exploit
POC
Public exploit code exists
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA GitHub

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.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC Yes
EPSS 0.5%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity + public POC available
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Out-of-Cycle
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
Very High
Technical Impact
Partial

Priority Score

66
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +46
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

CVE-2023-26482 HIGH POC
8.8 Mar 30

Nextcloud server is an open source home cloud implementation. Rated high severity (CVSS 8.8), this vulnerability is remo

CVE-2020-8180 CRITICAL POC
9.9 Jun 08

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

CVE-2023-48306 CRITICAL POC
9.8 Nov 21

Nextcloud Server provides data storage for Nextcloud, an open source cloud platform. Rated critical severity (CVSS 9.8),

CVE-2026-110447 CRITICAL POC
9.2 Oct 14

Unauthenticated OS command injection in the Collabora Online Built-in CODE Server Nextcloud app (richdocumentscode) befo

CVE-2016-9463 HIGH POC
8.1 Mar 28

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

CVE-2023-31128 HIGH POC
8.8 May 26

NextCloud Cookbook is a recipe library app. Rated high severity (CVSS 8.8), this vulnerability is remotely exploitable,

CVE-2023-28643 HIGH POC
8.8 Mar 30

Nextcloud server is an open source home cloud implementation. Rated high severity (CVSS 8.8), this vulnerability is remo

CVE-2021-22879 HIGH POC
8.8 Apr 14

Nextcloud Desktop Client prior to 3.1.3 is vulnerable to resource injection by way of missing validation of URLs, allowi

CVE-2019-12739 HIGH POC
8.8 Jun 05

lib/Controller/ExtractionController.php in the Extract add-on before 1.2.0 for Nextcloud allows Remote Code Execution vi

CVE-2026-22683 HIGH POC
8.7 Apr 07

Authorization bypass in Windmill 1.56.0-1.614.0 enables Operator role users to escalate privileges to remote code execut

CVE-2020-8259 HIGH POC
8.1 Nov 16

Insufficient protection of the server-side encryption keys in Nextcloud Server 19.0.1 allowed an attacker to replace the

CVE-2020-8153 HIGH POC
8.1 May 12

Improper access control in Groupfolders app 4.0.3 allowed to delete hidden directories when when renaming an accessible

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy