Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain leaked share token from chat/email/ticket
-
ExploitCall threedviewer public file endpoint with token and fileId
-
ExecutionBypass PublicShareMiddleware password check
-
ImpactReceive 200 with full 3D model file body
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 | Exploitation requires: (1) the threedviewer app installed and enabled on the Nextcloud instance at a vulnerable version (1.7.9 through 3.3.1); (2) an existing link share whose password protection the attacker wants to bypass; (3) attacker knowledge of the share token (the token in the shared URL) and the target fileId; and (4) the shared content being one of the app's supported 3D formats (STL, GLB/glTF, OBJ, STEP, IFC and other supported 3D types). Limiting factors confirmed by the advisory: non-3D files in the same share are unaffected, and expired shares return 500 rather than leaking contents, so only live, password-protected shares of 3D-format files are exposed. No password, session, or user interaction is needed once the token is known. |
| Impact | This is a genuine, easy-to-exploit confidentiality flaw but with a narrow blast radius. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N, C:H) is internally consistent with the description: a remote, unauthenticated attacker who merely knows a share token can retrieve the full file body from a password-protected link share over the network with no special complexity. The signals align rather than conflict - the advisory confirms the mechanism (CWE-306 missing authorization, compounded by CWE-863), the vendor confirms a fix in 3.3.2, and the vuln.today decision label is 'this_week' (not act_now/emergency). No EPSS score was provided and the input does not list KEV status, so this is treated as not in CISA KEV: no public exploit identified at time of analysis, and no evidence of active exploitation. The practical risk is bounded by two description-confirmed facts: the leak is limited strictly to the 3D file formats the app handles (STL, GLB/glTF, OBJ, STEP, IFC and other supported 3D types), and the attacker must already possess the share token. This is therefore a real priority for sites running the app with password-protected 3D shares, but its real-world risk is lower than the raw 7.5 suggests because it depends on a niche third-party plugin being installed and on 3D-format content being shared with password protection. |
| Exploit ScenarioDerived | An attacker obtains a Nextcloud link-share token that was pasted into a chat, email, or ticket but is supposed to be protected by a share password. Instead of hitting the share page (which correctly redirects to the password prompt), the attacker sends GET /ocs/v2.php/apps/threedviewer/public/file/{token}/{fileId} and receives a 200 with the full 3D model file body, bypassing the password entirely. No public exploit code is identified, but the advisory documents the exact request needed. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
Password-protected link shares in the 3D Viewer for Nextcloud app (versions 1.7.9 through 3.3.1) can be read without any password or session by anyone who knows the share token, via GET /ocs/v2.php/apps/threedviewer/public/file/{token}/{fileId}. The app's public controller was not a Nextcloud PublicShareController, so the framework's PublicShareMiddleware returned early and never enforced the share password, expiry, or share type; requests returned 200 with the full file body for shares whose normal Nextcloud share page still prompted for a password. Exposure is limited to files in the 3D formats the app handles (STL, GLB/glTF, OBJ, STEP, IFC and similar); non-3D files in the same share are unaffected and expired shares return 500 rather than leaking content. No public exploit code was identified at time of analysis; the vendor fixed the issue in 3.3.2.
RemediationAI
Vendor-released patch: 3.3.2 - upgrade the threedviewer app to 3.3.2 (or later) from the release at https://github.com/maz1987in/3Dviewer-Nextcloud/releases/tag/v3.3.2, which makes PublicFileController a PublicShareController with isValidToken()/isPasswordProtected()/getPasswordHash() and adds share-type, expiry and ShareNotFound handling in ShareFileService::findValidLinkShare(). The fixing changes are in commits 1b0ca86ff9a96b4e045cb379bc8b8c2fe05f2fae and 2cfef0326afc56112b948b3fdf7e5c873fab4104 as referenced in advisory GHSA-gjh8-x4wm-3cfj. If upgrading is not immediately possible, the vendor's documented workaround is to disable the app with occ app:disable threedviewer (which removes the 3D viewer from Nextcloud entirely, including legitimate viewing) or to avoid relying on passwords to protect link shares that contain 3D model files until the upgrade can be applied (which leaves those shares exposed to anyone holding the token). Because exploitation requires only knowledge of the share token, treat any token that has been shared in chats, emails or tickets as potentially disclosed and rotate or re-create affected link shares after patching.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The 3D Viewer is a PHP/Nextcloud AppFramework application (app id threedviewer, namespace OCA\ThreeDViewer) that streams 3D model files to a Vue/Three.js front end; its public streaming route is declared #[PublicPage] on PublicFileController, which extended OCP\AppFramework\Controller rather than OCP\AppFramework\PublicShareController. Nextcloud implements share password enforcement in PublicShareMiddleware, which deliberately returns early for any controller that is not a PublicShareController instance, so no password, expiry, or share-type validation ran on these routes. The root cause class is CWE-306 (missing authentication for a critical function), with the advisory also classifying it as CWE-863 (incorrect authorization): ShareFileService::loadLinkShare() treated any token matched by getShareByToken() as authorised, conflating token possession with authorization. The fix in 3.3.2 makes the controller extend PublicShareController and implement isValidToken(), isPasswordProtected() and getPasswordHash() so validation and brute-force throttling are delegated to the framework, and adds findValidLinkShare(), which rejects non-link/non-email share types, rejects expired shares, and treats ShareNotFound as 'no share' instead of surfacing a 500. The flaw was introduced in commit 1b0ca86 (2025-09-15).
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:H/I:N/A:N
Remote token-only access with no password or session gives AV:N/AC:L/PR:N/UI:N; full file body disclosure is C:H, with no integrity or availability impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
The 3D Viewer for Nextcloud is a comprehensive 3D model viewer application for Nextcloud that supports multiple 3D file formats. In versions 1.7.9 through 3.3.1, the app's public file endpoint performed no share authorization. Anyone who knows a share token could read the shared file's contents even when the link share was protected by a password. PublicFileController extended OCP\AppFramework\Controller and marked its routes #[PublicPage]. Nextcloud only enforces share passwords through PublicShareMiddleware, which returns early for any controller that is not an OCP\AppFramework\PublicShareController instance - so no password, expiry, or share-type check ran for these routes. ShareFileService::loadLinkShare() compounded this by treating any token that getShareByToken() matched as authorised. A share token is the part of the URL that people paste into chats, emails, and tickets. Password protection exists precisely for the case where holding the token should not by itself grant access, and that guarantee did not hold. Requests to GET /ocs/v2.php/apps/threedviewer/public/file/{token}/{fileId} returned 200 with the full file body for password-protected shares, with no password and no session. Nextcloud's own share page correctly redirected such requests to the password prompt. Scope is limited to files in the formats this app handles (STL, GLB/glTF, OBJ, STEP, IFC, and the other supported 3D types). Non-3D files in the same share are unaffected. Expired shares returned 500 rather than leaking contents. This issue is fixed in 3.3.2. PublicFileController now extends PublicShareController and implements isValidToken(), isPasswordProtected(), and getPasswordHash(), delegating password and token validation to the framework and gaining brute-force throttling. ShareFileService::findValidLinkShare() additionally rejects share types other than link and email, rejects expired shares, and treats a ShareNotFound from the share manager as "no share" instead of letting it surface as a 500. As a workaround, disable the 3D Viewer app (occ app:disable threedviewer), or avoid relying on passwords to protect link shares that contain 3D model files, until you can upgrade.
Technical POC Analysis
CWE-306 (Missing Authentication for Critical Function), with the advisory also tagging CWE-863.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
A high-severity vulnerability in the Nextcloud 3D Viewer app (versions 1.7.9 through 3.3.1) allows anyone who knows a share token to bypass password protection and download 3D model files without authentication. This exposes sensitive design or engineering data to unauthorized access, undermining the confidentiality of password-protected shares. Leadership should care because intellectual property and confidential project files may be at risk, and the issue affects all organizations using the app for secure file sharing.
Apply vendor patch: upgrade to 3D Viewer version 3.3.2.
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.
Unauthenticated OS command injection in the Collabora Online Built-in CODE Server Nextcloud app (richdocumentscode) befo
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 vector-store tampering in Nextcloud MCP Server before 0.117.2 lets any network attacker who can reach th
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
EUVD-2026-111082
NVD
CVE.org
EPSS
GitHub
Exploit-DB